util: make NonCopyable 0 size (instead of 1 byte)

this also adds a derived Eq, TotalEq, Ord and TotalOrd along with
removing the useless constructor