Clean up object version stuff

This makes the code check object versions on deserialization
for arguments as well as return values.

It also makes us keep a list of objects for each name, which will
allow us to support older versions as necessary.

Change-Id: I7d2df91113fccd82681457bbb19eef74a9f9121f