Beginings of Field Validation.
Renamed some classes, changed Record.Field into SplFixedArray which better enforces the behavior we want.