Add cached finder for first_or_create

In some cases, we may need to create a remote record if it doesn't exist when searching for it. This adds a cached finder that will retrieve the records and cache it when it exists or create the record and cache it when it does not.

Also updated the documentation accordingly.