Revamp Array

Main additions:
RemoveAt, InsertAt - Private API.
InsertFront - Public API.
Capacity - It can now shrink and enlarge.

Most internals reworked to use RemoveAt, InsertAt - avoids a lot
of duplication and ensures proper clean-up when objects were being removed.
This is not acceptable.

The method below does insertion in O(n) rather then O(log(n)) and as such doesn't belong to public API at all.
Check the total container requirements.