First move chunk to consolidate things under ivory-operation.

The 'operation' name is pretty unpleasant, so now would be
a good time for someone to come up with something better
if possible.

This follows #175.

Ideally this would of just been ivory-tools as a first step,
but as thing turned out things were _very_ tangled up via
interdependencies on tests (which validates this consolidation
in a sense). So this change includes ivory-tools and
ivory-extract changes.


As a side note, it would be really nice for us to decide on a consistent naming scheme for test functions. My personal preference is for shortish names roughly matching the code under test. I prefer this over the whole e1, e2, e3 thing because:
 - It is painful to rename all the test cases just to add one in the right spot.
 - It is nice to have at least a hint at why the code exists without having to scroll back up and cross check against the example number.

Consistency wins over my preference though, thoughts?