Performance micro-optimizations

- Add "isNormalized" flag on rects that are normalized, so they don't
  need to be checked again if already normalized
- Move argument validation into a function module with a flag that
  disables (short-circuits) the validation.
- Move the new render logic in Viewport into a configurable method, so
  layouts that don't need the heavy animation restrictions aren't forced
to use it.  Maybe this option should be made available to the Layout (?)
- Fix #14 - don't destory gesture handler when frame bounds change.  Now
  the frame bounds are just updated in the gesture handler on-the-fly.