Move resource classes to their own files.

This is easier for me to navigate.
Return a list of jobs in progress.
A method to return a job's most recent log entries.
GET /logs/recent, an endpoint to return recent log entries.

This will be used to address the "hey, my job is still working but not
showing up on the dashboard" problem: we can GET this endpoint on
dashboard startup and retrieve a bunch of log entry data for all working
jobs.
Message#to_json can accept arguments; it just won't use them.

It's common to have #to_json take options when it's being used
recursively (e.g. when calling Array#to_json).
Request most recent log entries on dashboard startup.

This commit also changes log buffering in the Job model to better handle
a large number of incoming entries.  Previously, we overwrote the
job.latestEntries array (and therefore lost entries) if we inserted
multiple entries in the same run loop iteration.