Fixed for the Specialised Vector

Added in include-once defines that I forgot.

Added more documentation.

[] operators now return the whole vector element (key and value) instead
of just value.

Fixed element keys not pointing to right location after a resize.

Keys now get cleared when erased or cleared. Can also be set to some
default null element using ::setNullElement(object) and
::useNullElement(true). This is so items accessing vector through
pointers can do safety checks. However these safety checks will fail
once the vector goes out of scope.