Added iterators to the C++ codebase.

Added NoMoreElementsError for when a user tries to iterate past the collection's contents.

Reorganized the ArrayList constructors to better utilize the initialization lists.

Removing the interface based unit tests from the C++ codebase.
Testing that inheritance is working is a waste since I am testing the compiler at that point.
Ideally if I don't completely omit the inheritance code (class child : public parent) and it compiles then inheritance SHOULD be working.
I will gladly eat my words down the road if I am wrong...

Adding a commented out test case for #17.
If this useless test is uncommented, the test program will start throwing bad_alloc errors.
See ticket for more info.

Closes #6