Change `enum` to use String values for `:string` and `:text` columns

This changes `enum` to use String values when the underlying databse column has the type `:string` or `:text`.

For example:

```
create_table examples do |t|
  t.column :status, :string, default: 'ok'
end
 
class Example < ActiveRecord::Base
  enum status: [:ok, :not_ok]
end
 
example = Example.new
example.status = :ok
example.save
# => <Example id: 1, status: 'ok'>
```

I'm sure there might be a couple of improvements that could be made to this PR, I would be really grateful for your feedback and glad to make some changes.

One thing I couldn't decide upon while working on this is whether `enum` should inspect the type of the underlying database column or if the user should pass a flag when calling `enum`. I opted for the former, as the latter would require redefining the `enum` method to be something like what follows and I wasn't sure what the policy/procedure for making potentially breaking changes is:

```
def enum(attribute_name, values, use_strings = false) 
  ... 
end
```