Changes to identity-related functionality, etc.

- Remove getIdentityField() and replace with setIdentityValue(), as the only time it was needed was when setting the identity value. This pairs nicely with getIdentityValue(). Both default to using an entity field that matches the primary col name; overriding is perfectly acceptable so that entities using getter/setter methods instead of exposed properties can have full functionality.

- Move entity/collection factory from constructor params to setters; this will help us not to have to override the constructor in child classes.

- Removed and/or protected some methods that need not be exposed.

- Updated tests.