Added a constructor to the Tuple class to allow it's size to be specified.
Simplified the Layout class and added documentation for it.
Simplified the interface required to be implemented in the classes that derive from Layout.