Add standard container methods to Array<>.

With these methods the Array<> class can be used like std::vector<>.
Please be aware that Array::reserve() has a slightly different semantic
than std::vector::reserve().
The intention is to make usage of Array<> more natural.
Fix issue #570.

The use of std::vector<> is replaced by Array<> for MSVC only. This fixes
the error. But it is still unclear why std::vector<> fails.