Index records with a canonical name

When storing a record with a non canonical name (for example "The User") created_model will use the canonical name for fetching (due to parse_model) and raise a ModelNotKnownError.

I've changed store_record to index every record with its name in the canonical form.
I've also added a spec that ensures that the canonical method is called with the name upon indexing through store_record.

Steps to reproduce:
```ruby
store_record('user','The User','User class') # @models_by_name == { "user" => {"The User" => "User class" }}
created_model("user \"The User\"") # parse_model returns ["user", "the_user"] and raises ModelNotKnownError
```

Cheers