Refactor granch and add message specific actions

Refactors some non-lein specific client functions into client.ml.

Allow sending of multiple messages to the the nrepl server.  Each
message is associated with a record of actions for each returned field
type.  The actions are stored in the pending message data, which is
now a hashtable, rather than a list ref.
Add a 'main' target

The main target runs a main function in a project repl, bypasssing lein.

The main namespace is passed as the first argument.  The rest of the
arguments are passed to the main function.
Merge pull request #9 from hugoduncan/feature/add-main-target

Two commits that do the following (shout if they need to be borken up more):