Move not operation to C++

Unfortunately this is a bit of a special case because of exactly how
the type system appears to work...  I can probably fix this, but I
think I need to do a rewrite of the operation classes... :)
Missed some conversions

I guess there are some special-purpose operations, these were free.