Return last response from execute

Rather than relying on the internal last_response attribute to get at
the response from an execute call, simply return the response from
execute.
Deprecate last_response based serialization

Relying on #last_response is a bad pattern. Instead of expecting it to
be set when serializing records or adding errors, deprecate the old
methods and add new ones that take arguments instead.
Execute RPC calls using .rpc instead of instances

Currently, the RPC module is mixed into ARem::Base. This is a bad
pattern that couples the RPC layer with the data model. Instead, there
should be a clean separation much like AR's database connection.

This is the first step in unraveling all the things.
Use the new serialization pattern in bulk actions
Use the new serialization pattern when searching
Use the new serialization pattern in persistence
Add a spec for Base.serialize_records