Fixed issue #4.

The reason bad JSON was allowed to be executed wasn't because the Job
unmarshaller was failing it's job. Rather it was because the bad JSON was
unmarshalled into valid JSON before even reaching the Consumer handler.

What was happening was that bad JSON would reach the server half of QMD.
Where it would be routed to RunScript(). RunScript() would unmarshal it
into a ScriptRequest struct however errors would be ignored and the
struct would be allowed to be marshalled and sent over the wire to the
worker side. Where the Consumer handler would only see zero values!

The fix is simple: fail early. Instead of allowing errors to pass,
RunScript() will now fail and send back a 500 error on any important
actions such as unmarshalling a message or generating an ID.

Sanity tests were also added to Job for this case.