Enums: Should they be more like flags?

Imagine

```erlang
%% @doc Specifies the storage engine used for Riak's key-value data
%% and secondary indexes (if supported).
{mapping, "storage_backend", "riak_kv.storage_backend", [
  {default, {{storage_backend}} },
  {datatype, {enum, [bitcask, leveldb, memory, multi]}}
]}.

{translation,
 "riak_kv.storage_backend",
 fun(Conf) ->
    Setting = cuttlefish:conf_get("storage_backend", Conf),
    case Setting of
      bitcask -> riak_kv_bitcask_backend;
      leveldb -> riak_kv_eleveldb_backend;
      memory -> riak_kv_memory_backend;
      multi -> riak_kv_multi_backend;
      _Default -> riak_kv_bitcask_backend
    end
 end}.
```

Now imagine if it were just:

```erlang
%% @doc Specifies the storage engine used for Riak's key-value data
%% and secondary indexes (if supported).
{mapping, "storage_backend", "riak_kv.storage_backend", [
  {default, {{storage_backend}} },
  {datatype, {enum, [
      {bitcask, riak_kv_bitcask_backend}, 
      {leveldb, riak_kv_eleveldb_backend}, 
      {memory, riak_kv_memory_backend}, 
      {multi, riak_kv_multi_backend}
    ]}}
]}.
```