FormatField: made start, end, length immutable, calc length in initializer (failed before if only set start/end), added some tests