Added several methods to Bounds.
* setPosition/getPosition:
  These functions move the Bounds while preserving width / length / height / etc.
  "position" refers to the mins corner of the Bounds.
  Two variants, one that takes a point, and another that takes individual coordinates (available on 2D, 3D, and 4D variants of Bounds).
* isNormal():
  Returns true if for each dimension i, mins[i] <= maxs[i], false otherwise
* normalize():
  For each dimension i, if mins[i] > maxs[i], mins[i] and maxs[i] are swapped
* contains( point ):
  Returns true if "point" is inside of the Bounds (inclusive).
* include( point ):
  If point is not inside of the Bounds, the Bounds is expanded to include it.
Added unit tests for above methods.