Port to Core

Okay, this is going to be a huge mess of a pull request, and I will need your help to resolve the conflicts @bennn. Here is what this patch is supposed to have accomplished

1. Porting the tools to the <code>Core</code> standard library.
2. Refactoring the interface to use the <code>Core.Command</code> module for parsing and extensibility.
3. Rework the existing commands into more modular pieces that are easily tested.

Here are the main problems we need to resolve before we can merge:

1. Merge post March updates on the master branch into the new framework. This is a huge headache and I have already tried once unsuccessfully.
2. Work out the kinks in the command line parsing. Some of the commands work as intended, some don't. This should not be that hard as it is the result of me not understanding the <code>Command</code> module way of passing in certain arguments. In some cases, I just left he argument in as a stub to get the thing to compile.
3. (Possibly another branch??) Write a test harness to verify that the commands work as we expect.
4. Greatly expand the <code>~readme</code> strings in the actual command types to be more like <code>man</code>. The one line descriptions that are currently displayed in <code>cs3110-staff -help</code> are in the <code>~summary</code> fields of the relevant commands.
5. Hunt down and track which issues these fix and mark them as resolved when this finally gets into shape.

This (in particular 1.) should be more annoying than difficult. We can probably get it done in a few days.

-- bkc