The containers no longer force the user to use the ptrdiff_t type for
size information. For convenience, size() now always returns an int,
and the size_s() method offers a way to handle arrays with more than
2 billion elements. Internally, we still use ptrdiff_t, though.
Since so much code had to be changed, I took the opportunity to get
rid of capitalised accessors for classes that are lowercase.
Added utils.h : GetRandom(Array<T>) : gets a random element in a template list with weight logic.
T FindValue(char*) : Find the value of a safe enum from the given name (when GetName is implemented)
swap(T&, T&) is now in here too.