@orta => use the flow layout api for getting header and footer dimensions

I strongly believe that we should subclass the FlowLayout delegate as it already has an api for headers and footers. This makes it way easier for us or anyone else to swap layouts on the same collection view without having to use different APIs to provide headers and footers for each layout. Everything I've read about creating your own layout says that you should subclass the Flow Layout.

Still more changes to come.