Made the headings bold.
Made column width expand based on contents

Have max width to limit it to so it doesn't get huge.
Need mono-spaced font to make width calculation more accurate.
Added wrap text for each cell written to
Froze Top Row

Apparently if you freeze in column A it freezes only rows above, and if
you freeze in row 1, it freezes columns to the left. otherwise it
freezes both rows and columns.
Made text bold
Moved max column width to settings
Fixed Pep issues
Made cell contents default to top left of the cell
Made header default to top center of cell
Added filters
Replaced dict key guard with defaultdict.
'is' should ONLY be used for identity.

is: do these names refer to the same object
==: do these names refer to equivalent objects

http://stackoverflow.com/questions/306313/python-is-operator-behaves-une
xpectedly-with-integers
Removed redundant call to keys().

The `in` operator already iterates through keys on a `dict`.
Added padding for the filter dropdown button.
Determining width by maximum of all lines.

TODO: add tests to get coverage
Added tests and fixed Item.data loading bug.
Docstring cleanup.
Added formatting to the integration test
removed comments

they had been left in to show what I did to determine that freeze pane
value was None
Refactored for to shorten line length.