closes #2: I think I understand operator overloads and the many uses of const now...maybe...just maybe
Getting rid of the two operator[] methods in favor of one that makes the most sense.

Changing the assignment operator to do a copy of the backing array instead of a reference copy.
The two lists still ultimately point to the same data...so if one list gets destroyed...the other list is boned.
I may create a deep copy method that takes in a "copier" delegate.