@ashfurrow => support for returning layout attributes for header and footer

Here I did what we talked about. header and footer attributes are calculated if necessary and stored. they are  can then be included when determining which attributes to return for `layoutAttributesForElementsInRect` and `layoutAttributesForSupplementaryViewOfKind`.