started adding validation methods in fields.js

pertains to OS-7
first (full) pass at fields.js validation

this is good enough that we can move on to adding a .validate method to
the model class.

pertains to OS-7
added missing semi-colon in test_collection.js
added ValidationError().serialize() method

pertains to GA-152
added tests for extracting compound fields
fields.js validates empty strings

pertains to OS-7
added Model::validate method

this chooses the correct schema (either create or update), extracts the
appropriate fields from the model (with Field::extract), and then
validates against that extraction.

pertians to GA-152
re-add the 'outermost' option for serialization

this argument was removed from StructureField::serialize and
MapField::serialize because i thought it wasnt used, but it's used in
request.js.

this commit goes back and adds it in to the newly-created 'options'
parameter.

pertains to OS-7