Isolated Assert from Vector<>

Vector.hpp no longer include Assert.hpp.
The asserts have been moved to VectorAssert.cpp.

Since Vector is a template and its implementation is exposed by including Vector, and since String is using Vector, there would be a circular reference when using String.hpp from Assert.hpp.
This is now resolved, and CoreException can now use String properly instead of using the _holder hack.