Basic orientation optimization

These additions provide basic box rotation so that the standard orientation of all boxes and items are in the same direction.  Boxes|Items are oriented when added to the packer using addItem(), or addBox(), or when added to a list.  The optimization standardizes orientation so that the longest edge is set as the depth, and then the shortest edge is set to the height (length in your taxonomy).

The additions have been made so as to remain backward compatible with existing implementations.  Each orientation method will first verify the existence of the required setter methods before attempting to continue, and will simply return the unchanged cuboid in it's original form when they do not exist.