BackupManagerService: Unbreak "adb restore"

The new restoreOneFile() logic aborts the loop whenever the result
isn't an actual successful restore. The problem is that a normal
backup will have plenty of non-restore cycles (APKs that are already
present being the most common), so this breaks regular "adb restore".

Go back to the original logic of completing the loop as long as the tar
file has data (or an explicit abort is generated)

Change-Id: I808cdc1c3b374e29d8438c7051e37c24a7a9d991
BackupMangerService: Pass result code in non-interactive calls

Non-interactive calls are made by Nextbit.  Continue to expose
detailed error codes for all failures.

Also:
- avoid overwriting the non-okay result codes; and
- re-enable version mismatches enforcement.

Change-Id: I54983d8f270285942db20eaff1e6de4229ec781e
Merge remote-tracking branch 'cyanogenmod/cm-11.0'