(Very) basis flex-grow support ( Issue #7 )

Had a bit of a chance over the weekend to write a skeletal outline of flex-grow support, mainly to get to grips with the codebase. I've tried to follow the outline of the spec algorithm, but *a lot* (read: pretty much everything) is missing, incomplete or outright wrong :)

Before I put more time into it, mostly on properly calculating hypothetical main sizes, I thought it'd be good to do an early pull request and get feedback on if this is the right style, format and direction to be going in?

Also, sorry about pulling directly into develop, there's no option to request a new branch as part of a pull request.