Add unit test trap for object change detection

This adds a test that compares each object to a known hash that
covers the list of remotable method signatures and the field
definitions. Storing this in the code helps us assert that our object
definitions have not changed without a version bump. If someone
adds or changes a field or method to an object, this test will
fail, reminding them to bump the version and update the hash.

This adds a 'remotable' attribute to the methods decorated as such
so that we can detect them separately from local methods which
do not need a version bump.

Change-Id: I3e8bd387e36cec406baf4c6933baca9e1663d122
Merge "Add unit test trap for object change detection"