Using storage key if we find it for the location for the urls when using a nested URL.

The problem was identified when using a nested hasOne. The urlNestsUnder method overwrites the url methods for the model, which in turns take priority over the _defaultCollectionUrl method inside the urlForCollection method.
The url method that is re-writted uses a plural resource name, and thus ignores the storageKey set, which (in my understanding) is what should be used.

Added backward compatibility for when storageKey doesn't exist, the legacy pluralisation is utilised.