Add move semantics for static components.

Also begun replacing all instances of TemplateID with the getESTypeID
function. This funciton is much safer and relies on std::decay to
normalize types before calling TemplateID.