Added "names" option to @FieldIndexTable - boolean to indicate whether the custom index table uses the actual field names or value, value2, etc. 
Implemented @FieldIndexTable(readonly=true) - if data in a custom index is handled externally, use this.
Added source argument to @FieldIndexTable and ability to set options on types
Partial implementation of source argument to @FieldIndexTable annotation - Added columns and mandatory join to source tables whether the columns are in the predicate or not
Using private member rather than EXTRA_COLUMNS - bugfix
Implementation of source argument to @FieldIndexedTable - setting field values from extra DB columns instead of JSON blob
Straightened out confusing use of ObjectIndex when options were actually being set on ObjectField - bug fix.
Changed serializeData() to check if each field is part of a FieldIndexTable(source=true), if so, do not save it to the JSON BLOB, as it would be duplicate, possibly incorrect, and confusing.
Merge branch 'master' into feature/fieldsource
Add methods to make it easier to get at an index symbol.
Adds modification index tables to implicit joins if any of them use @FieldIndexTable(source=true)
Adds StringUtils.getQueryParameterMap.
Trimming trailing spaces.
Fixes a possible issue with ObjectType.getIndexByFields when the names is null or when the field names are similar (e.g. [ foo, bar ] would match a single field named foobar)
Combines both SqlDatabase.serializeData into a single serializeState since serializeData(Map) wasn't used any more.
Merge branch 'master' into feature/fieldsource
Removes the unnecessary ObjectType.options.
Changes to use ObjectField modification instead of options for @FieldIndexTable data.
Formatting.