Add delegate method for errors

Currently, the delegate is notified at several points in the update process.  If an error occurs that aborts the process (e.g. the DSA signature is invalid), the delegate doesn't have any way to find out.  This can leave the app in a state where it is waiting for an update forever.

This pull request adds a new updater:didAbortWithError: delegate method that gets called whenever the driver calls abortUpdateWithError:.