Make Node, DofObject non-virtual

Use a protected destructor and make the remaining constructors
protected in DofObject for safety's sake.

This ought to save us a vtable pointer (8 bytes) per Node.