Added a generic Size class and three common specializations for 2D, 3D, and 4D sizes.
* All Size objects have a data[N] member, each element of which stores a length corresponding to a particular dimension.
* The 2D, 3D, and 4D specializations of Size provide members with both long and short names for each of the stored lengths:
  2D:
  +------+-----------+------------+
  | Axis | Long Name | Short Name |
  +------+-----------+------------+
  | x    | width     | w          |
  | y    | height    | h          |
  +------+-----------+------------+

  3D and 4D:
  +------+-----------+------------+
  | Axis | Long Name | Short Name |
  +------+-----------+------------+
  | x    | width     | w          |
  | y    | length    | l          |
  | z    | height    | h          |
  | w    | depth     | w          | <- Note: 4D only
  +------+-----------+------------+

Several methods in Bounds were added, removed, renamed or moved to Size:
* "wlength" was renamed to "depth".
* .setDimensions( w, l, h, ...) was renamed to .setSize( w, l, h, ... )
* .getDimensions( w, l, h, ... ) was renamed to .getSize( w, l, h, ... )
* Added a Bounds( pt, size ) constructor
* Removed the Bounds( pt, w, l, h, ...) constructors
* Added .set( pos, size ) and .get( pos, size )
* Added .setSize( size ) and .getSize( size )
* .getPosition() now returns a Point instead outputting one
* .getArea() / .getVolume() was moved to Size
* Added .contains_mIME( pt ), "mIME" meaning "(m)inimum (I)nclusive, (M)aximum (E)xclusive".
  This method functions similarly to .contains() but excludes maxs (commonly used by tiled maps, UI, etc).

Added unit tests for Size
Updated unit tests for Bounds