Use default implementations of move constructor and assignment for Surface.
Update .gitignore.
Remove redundant call to std::move.