MSVC 2013 compatibility: fix includes.
MSVC 2013 compatibility: no rvalue references for *this.
MSVC 2013 compatibility: more workarounds for array initialization bug.

Followup to e2180ee85bf9f4d938f413a625fbdd4cd950d953.
MSVC 2013 compatibility: different attribute placement.
MSVC 2013 compatibility: work around more compiler crashes.
MSVC 2013 compatibility: some explicit typing needed.
Don't export template class.

The explicit instantiations are exported already.
Merge branch 'master' into compatibility