Add options parameter for modifying fetch request attributes
rename methods

fetchResultsController… => fetchedResultsController…
use instancetype instead of id
Set fetchLimit of 1 for findFirst… methods
Add findFirstOrInsert… methods

If no objects are found, these methods insert
a new object into the context and, optionally,
invoke `insertBlock`.
Support using custom NSFetchRequest

Remove the "options" parameter added in 19b08b58d8
and instead allow the caller to provide an
NSFetchRequest instance.