Integrate ActiveJob / DeliverLater / GlobalID with Rails

WIP.
> force people implement their own handling like what's being proposed here.

I will quote you, ["nobody is forcing you to use it"](https://github.com/rails/rails/pull/16485#discussion_r16301625).  I am proposing that 1) we add a new exception `ActionJob::DeserializationError` ([as @cristianbica suggests](https://github.com/rails/rails/pull/16485#discussion_r16300776)), and 2) extract argument deserialization to a method. Nobody is forcing you to implement the extracted method, but you can if you want, **and** you can still use `rescue_from`.

As a selfish argument, we'll need this method to migrate custom arg serialization (we're using marshal not JSON).  We could end up in infinite loops with `rescue_from` if we don't have this hook method to distinguish between arg deserialization and job processing.