CAS-1325 Serialization bug fixes/improvements.

- Added default private constructor to many components to facilitate
  serialization.
- Store normal collections and provide immutable wrapper on demand.
- Store null collections and provide empty wrapper on demand.
- Improve equals support (required for test coverage, but arguably needed
  for correct application behavior).
- Remove custom serializers (default constructor allows use of defaults in
  many cases).
Merge pull request #303 from serac/CAS-1325

CAS-1325 Serialization bug fixes/improvements.