Stop/Status Commands

**NOTE**: @guidow, please review but do not merge.  There's conflicts between this pull request and #57 that I will need to manually handle.

This pull request fixes a couple of bugs in the stop and status command line targets:

* Fixes #65 by relying on the Agent's REST to communicate with the agent process rather than a pid file.  This is more accurate and provides more information than the pid file alone wound have.  We still look at the pidfile but only as a last resort.
* Fixes #68 by implementing the REST endpoint for stopping the agent.

Example output from `pyfarm-agent status`

```
(pyfarm-agent) $ pyfarm-agent status
....
2014-06-08 17:27:14 DEBUG    - pf.agent.cmd    - Checking agent status via api using 'GET http://localhost:50000/api/v1/status'
2014-06-08 17:27:14 INFO     - pf.agent.cmd    - Agent foobar is online
2014-06-08 17:27:14 INFO     - pf.agent.cmd    -                Uptime: 6.770268 seconds
2014-06-08 17:27:14 INFO     - pf.agent.cmd    -   Last Master Contact: UNKNOWN seconds
2014-06-08 17:27:14 INFO     - pf.agent.cmd    -     Parent Process ID: 19615
2014-06-08 17:27:14 INFO     - pf.agent.cmd    -            Process ID: 19615
2014-06-08 17:27:14 INFO     - pf.agent.cmd    -           Database ID: 1
2014-06-08 17:27:14 INFO     - pf.agent.cmd    -             System ID: 114374075298386
2014-06-08 17:27:14 INFO     - pf.agent.cmd    -       Child Processes: 0 (+0 grandchildren)
2014-06-08 17:27:14 INFO     - pf.agent.cmd    -    Memory Consumption: 49MB
```

**Last Master Contact** - 'UNKNOWN' because `master_reannounce` has not been merged yet
**Memory Consumption** - Memory consumption of the agent itself plus the memory consumption of any child process.  This also includes memory consumption of any grandchild processes.


Example output from `pyfarm-agent stop`
```
(pyfarm-agent2) $ pyfarm-agent stop
....
2014-06-08 17:32:08 INFO     - pf.agent.cmd    - Stopping the agent
2014-06-08 17:32:08 INFO     - pf.agent.cmd    - Agent has stopped
```

On a final note, there's still a little work to be done with the `stop` command within the agent.  I just didn't include these in this pull request because we either need the job type portion fully complete or it's something we don't need right this second.  As is even without these points this pull request should make `pyfarm-agent` more functional than it was before:

* When `--no-wait` is not present in the call to `pyfarm-agent` we should wait on all processes to shutdown and for the agent to inform the master of the shutdown.  After that's complete then we respond to the stop request before the reactor fully shuts down.
* Authentication, `stop` right now can be performed by anyone with access to the agent's API.