Hi Joseph
Awesome work! Every time you post I get more likely to do the C++ next low level curriculum post ;)
First thing to say: I completely agree with Oliver that the code is hard to follow, but the templates don't really bother me unduly because I'm used to them ;)
Personally I would lose all the C++ 11 stuff, e.g. the use of std::move, smart pointers etc.
My main reasoning for this being that it just adds extra stuff for people to make sense of when they're (presumably) already trying to get their heads around the concepts you're introducing to them with some of your code looks like memory leaks to the trained eye - assuming that the trained eye is used to reading code with regular (as opposed to smart) pointers.
Ultimately it's up to you though :)
Alex