More job serialization out of the job class

The job should not be able to serialize itself why it doesn't
contain the logic to deserialize (ie instantiate) iself from
this string. Otherwise, behaviour and control are mixed between
different layers.

Now, the (de)serialization is done in the queue. This also eases
the usage of the queues as they do not have to repeat the
extraction code. For special queue usage, it is possible to add
additional metadata during creation of the job.
Set name as first key in the serialization

All tests use the name as the first part in the serialization
string. To prevent us from rewriting it all, simply swap these
keys.
Consume serializeJob/unserializeJob methods

The in-memory queue for testing should not serialize the job
itself anymore but use the serialization format provided by
the abstract queue implementation.
Remove all serialization tests from the Job tests
Test format of the queue job serialization

Add methods from the job tests to test if all types of serialization
are correct.
Rewrite tests for unserialization of job payload

All tests were written with mocks, but this can be made easier
with just the serialization input and assertions if the return
value (job) is actually a job and contains all the required content
fields.
Add long description for unserialization of jobs
Add removal of jsonSerialize() in CHANGELOG

The removal of jsonSerialize() is a BC break in the job and must
be documented in the CHANGELOG.
Add note about the "name" metadata field for jobs
Merge pull request #92 from juriansluiman/feature/extract-job-hydration

Extract job hydration to the queue instance