Introduce a growing array class.

Arrays are useful for storing a collection of small objects where
linked list node allocations would be a lot of overhead. They are
also useful for random access through the container. Lastly, this
implementation assumes copy semantics which are intentionally
different from list's reference semantics (since objects are assumed
to be smaller).

The current interface is intentionally sparse.
4 files changed