Switch to new command line parser

Now the client supports real commands. Each command has its own class
with its own required params, which should make understanding what each
piece does a bit clearer.

This change should be fully backwards compatible - if you notice any
issues please file a bug.

The importreadsets and getjob commands also now supporting polling for
status.

And the importreadsets command now also does way more then just calling
the api. It checks that the dataset is valid (and will eventually help
you make one), loads the job, polls the job, and looks up the resulting
readsets.

Other commands will be greatly improved soon. Please file feature
requests for things you would like the command line to do for you!