Make AbstractCard based upon HeaderFooterLayout
use internally HeaderFooterLayout to lay out the header and footer of the cards. in order to be 100% compatible it is still a bit hacky as two things have the same cotentitem they will race for who gets to move/resize it.
However, it's still much simpler than the old implementation. A cleaner solution would imply changing the api which might be a bit too late now