We need to tell Go that we are now using C++11.
Update the DISALLOW_COPY_AND_ASSIGN macro.

Also use "= default" where possible.
Add a missing virtual destructor.

Probably harmless, I don't think we destroy these objects through pointers of
that type, but let's make sure.