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.
EDIT: Never mind, now I get your point. Yeah, I was also on the fence about an raw `insertFront`.