Release 0.12.0

This release mostly features greatly improved reliability of stalled job detection, but also includes some refactoring. Here's the complete list:

- Modified CPU load calculations used to determine if a job is stalled now included all of the children of a process. Before, if a parent process was sleeping and children were doing all the work, the job would get incorrectly detected as stalled and be resubmitted. This was particularly problematic for [SKLL](https://github.com/EducationalTestingService/skll).
- CPU usage and memory histories are now reset when a job is resubmitted. This means error emails will contain more sensible graphs for resubmitted jobs.
- Now raise a `JobException` if we give up on a job instead of ending up in a bad state.
- Renamed `SEND_ERROR_MAILS` environment variable to `SEND_ERROR_MAIL`.
- Removed deprecated `pg_map` function. It was replaced by `grid_map` in 0.9.2
- Removed `runner` module from generated API documentation, because no one should really need to use it directly.
- Renamed `Job.job_id` to `Job.id`
- Added missing `local` option to `grid_map`.
- Added a bunch more unit tests.