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.