Made changes to validation to support Entity Collections

Wide-spread changes to the way that entities work and validate
themselves to make them easier to use and provide the ability to
have easy entity-level validation.