option formatters turned into objects

Each holding a validator and a description which is used in help strings.