Changed rectangle from exposed data members to accessors. Various changes to accommodate that. Also the code now makes uniform use of the _Double_to_int helper function. Added a _Container_size_to_int function template that handles casting the result of T.size() to an int and has an assert check to ensure that an int can handle the value. Switched to using that throughout the code base.