Fetch Results Controller error handling

I modified the structure of the build in error handling (`abort()`) so that subclasses can override the error handling method without having to directly change the code.

This is necessary when using cocoapods as modifying the code pulled in via the pod library often doesnt allow modifying code of dependent libraries.