Make calling functions a bit safer

This adds an operation subclass that calls functions.  I also had to
restructure some of the other operations a bit (for example, there's
now an ALU operation) because I've got quite a few different sorts of
operations.