Cleaned up harvester.

This commit cleans up harvester quite a bit by doing the following:

1. Moves socket logic into a transport layer (so we can separate logic a
  little easier)
1. Introduces a utilities file that can provide access to any utils we
  may need for harvester)
1. Removes the `registerModule` command; this shouldn't be a public API
  function
1. Introduces a filter system (through `addFilter`, `removeFilter`,
  `applyFilters`) so plugins and patcher modules can easily hook into
  any harvests.

I also toyed with the idea of making transports a singleton but quickly
decided against it because a developer should be able to instantiate as
many harvesters as he wants in one application (though I personally
wouldn't do this).