Put layout-related code in layoutSubviews instead of setFrame

When the view is part of an autolayouted view hierarchy and its size is updated
via a change in constraints, setFrame is not called, but layoutSubviews is. So to
properly support autolayout, we need to do these calculations as part of layoutSubviews.
Fix calculations for _contentView's height

The content view's height depends on _tokenField's frame, therefore we have to
calculate _tokenField's frame first.
Don't call layoutSubviews directly; always use setNeedsLayout instead.
Allow TITokenFieldView to manage the frame of its own content view.

This enables the use case where the TITokenField is pinned to the top of the screen
and then contents of contentView are allowed to scroll independently. Usually if
managesContentViewFrame is set to YES, you'll also want to set scrollEnabled
on the TITokenFieldView to NO.
Merge pull request #2 from sadlerjw/autolayout-fixes

Autolayout fixes