Port to C++11

C++14 is still not entirely well supported and extant operation
systems don't typically have a C++14-capable GCC.  But we don't rely
on C++14 features too much, and with a we can have the code-base in
C++11 with bit of porting (std::make_unique and std::index_sequence).