Make client amenable to supporting an API

A couple changes to CRABClient. Some enable testing the client code
by supporting dependency injection, others do helpful things like
make the status command return the raw dict