AST: Rewrote memory movement codegen.

Renamed AST::Exp::genStmntMove[Part] to GenStmnt_Move[Part]. Rewrote it to use generalized templates, since most address spaces behave similarly at this level.
Added AST::GenStmntCtx to store statement generation arguments.