Explicitly writes definitions for ast_entry move-construct and move-assignment.

Defaulting them does not work in GCC 4.9+ as the definitions for container move is not marked as noexcept.
This library will continue to (incorrectly) mark it as noexcept because it really won't actually throw.