Fixes when compiling in c++11 mode

Follow-up of #5415. Fixes builds like: ```./configure CXXFLAGS="-std=c++11"```
No rush, I just wanted to get these fixed up while they were fresh in my mind. Fixes all known (to me) build issues except the boost issue mentioned below, tested with several compilers/stdlibs.

- Fix a boost incompatibility with c++11 and list_of
- Don't forward-declare std::map types. See: http://llvm.org/bugs/show_bug.cgi?id=13471
- Watch out for user-defined-literal syntax in tests

There's also an annoying boost bug that causes problems with copy_file on some platforms:
https://svn.boost.org/trac/boost/ticket/10038

It's a bit more complicated to fix, so I'm leaving that as a separate issue. Ideally we could work around it by just using a different function. As a temporary workaround, adding BOOST_NO_SCOPED_ENUMS to CPPFLAGS works.

As mentioned in a commit message, the MOVEONLY commits are very simple despite what the nasty git diffs show, it's just moved code.