Fixed problem when an error is returned when not needed.

This should fix issue #41 when an error is returned when cancelling the share sheet or the Extension itself.
Added new helper class method to avoid code duplication
Better method name
A more elegant way! @roustem++
Using a single error.code is clearer.
Making a few changes in how we handle "Cancelled By User" scenario.
Adding a missing completion handler call (spotted by awesome @radazzouz)
Removing OP prefix from the error codes.
Merge pull request #42 from AgileBits/bugfix/fix-problem-when-an-error-is-returned-when-cancelling

Added a special `AppExtensionErrorCodeCancelledByUser` error code used when the extension was cancelled by the user and the result can be ignored without showing the error message.