data/range_ptr: fix embarrassing bug in tail_from.

So tail_from hasn't worked in quite some time.
data/crc32: finish refactoring.

Clients can now choose a canned 'fast' or 'small' implementation, or
instantiate their own (possibly multiple).
data/maybe: remove outdated comment.
utility: make move/forward constexpr.

This is consistent with their definition in C++14.
data/maybe: literal type support.

Maybe is now *even more* code than it was before, but it can now be
used as a literal type when parameterized with types that have
trivial destructors.  This means that, among other things, Maybe<T>
in a static configuration struct is now ROMable.

I've also altered the move semantics.  Previously, a moved-from Maybe
would empty itself, presumably in addition to its contained value
doing the same (the "zombie" state).  This is, in hindsight, kind of
weird, and I've ended it.