Bug 790931 - Set instrumentation sharedUserID for testing; remove instrumentation maven hack that can cause java.lang.IllegalAccessError.

The removed hack included two versions of some classes twice in the
instrumentation classes.dex file; for discussion, see
https://groups.google.com/forum/?fromgroups=#!topic/android-developers/NBMU9wRVnLc.
I'm not sure why we didn't hit this before; it appears to depend on
the Android Context, because I could only trigger this from within
BroadcastReceiver.onReceive(Context context).

Full log looked like:

W dalvikvm(3758)              Class resolved by unexpected DEX: Lch/boye/httpclientandroidlib/impl/auth/BasicScheme;(0x4150eb70):0x1e9068 ref [Lorg/mozilla/apache/commons/codec/binary/Base64;] Lorg/mozilla/apache/commons/codec/binary/Base64;(0x4150eb70):0x203a38
W dalvikvm(3758)              (Lch/boye/httpclientandroidlib/impl/auth/BasicScheme; had used a different Lorg/mozilla/apache/commons/codec/binary/Base64; during pre-verification)
D AndroidRuntime(3758)        Shutting down VM
W dalvikvm(3758)              threadid=1: thread exiting with uncaught exception (group=0x40c6c1f8)
D dalvikvm(3758)              GC_CONCURRENT freed 383K, 6% free 9541K/10119K, paused 2ms+2ms
E AndroidRuntime(3758)        FATAL EXCEPTION: main
E AndroidRuntime(3758)        java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
E AndroidRuntime(3758)        	at ch.boye.httpclientandroidlib.impl.auth.BasicScheme.authenticate(BasicScheme.java:164)
E AndroidRuntime(3758)        	at org.mozilla.gecko.sync.net.BaseResource.getBasicAuthHeader(BaseResource.java:141)
E AndroidRuntime(3758)        	at org.mozilla.gecko.sync.net.BaseResource.applyCredentials(BaseResource.java:149)
E AndroidRuntime(3758)        	at org.mozilla.gecko.sync.net.BaseResource.prepareClient(BaseResource.java:169)
E AndroidRuntime(3758)        	at org.mozilla.gecko.sync.net.BaseResource.go(BaseResource.java:303)
E AndroidRuntime(3758)        	at org.mozilla.gecko.sync.net.BaseResource.delete(BaseResource.java:330)
E AndroidRuntime(3758)        	at org.mozilla.gecko.sync.net.SyncStorageRequest.delete(SyncStorageRequest.java:166)
E AndroidRuntime(3758)        	at org.mozilla.gecko.sync.config.ClientRecordTerminator.deleteClientRecord(ClientRecordTerminator.java:77)
E AndroidRuntime(3758)        	at org.mozilla.gecko.sync.receivers.SyncAccountDeletedReceiver.deleteClientRecord(SyncAccountDeletedReceiver.java:85)
E AndroidRuntime(3758)        	at org.mozilla.gecko.sync.receivers.SyncAccountDeletedReceiver.onReceive(SyncAccountDeletedReceiver.java:137)
E AndroidRuntime(3758)        	at android.app.ActivityThread.handleReceiver(ActivityThread.java:2131)
E AndroidRuntime(3758)        	at android.app.ActivityThread.access$1500(ActivityThread.java:127)
E AndroidRuntime(3758)        	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1209)
E AndroidRuntime(3758)        	at android.os.Handler.dispatchMessage(Handler.java:99)
E AndroidRuntime(3758)        	at android.os.Looper.loop(Looper.java:137)
E AndroidRuntime(3758)        	at android.app.ActivityThread.main(ActivityThread.java:4507)
E AndroidRuntime(3758)        	at java.lang.reflect.Method.invokeNative(Native Method)
E AndroidRuntime(3758)        	at java.lang.reflect.Method.invoke(Method.java:511)
E AndroidRuntime(3758)        	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
E AndroidRuntime(3758)        	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
E AndroidRuntime(3758)        	at dalvik.system.NativeStart.main(Native Method)
W ActivityManager(1988)       Error in app org.mozilla.gecko running instrumentation ComponentInfo{org.mozilla.gecko.sync.test/android.test.InstrumentationTestRunner}:
W ActivityManager(1988)         java.lang.IllegalAccessError
W ActivityManager(1988)         java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
D AndroidRuntime(3747)        Shutting down VM
I ActivityManager(1988)       Force stopping package org.mozilla.gecko uid=10111
Bug 790931 - Remove all direct auth token handling.

Auth tokens were only ever used for the Sync password.  The other
secret (the Sync key) has *always* required sharedUserId permissions
to access (via AccountManager.getUserData).  So while we started using
auth tokens, they were never sufficient, and always annoying due to
thread restrictions.  This change is long overdue.
Bug 790931 - Add Android permission and constants.

These will be used to broadcast that a Sync account has been deleted
to all Firefox Apps with the same Android Account type.
Bug 790931 - Add SyncAccounts.makeSyncAccountDeletedIntent.

This intent includes sensitive information (password, Sync key)
and *must* be broadcast only with a Firefox-only Android permission.
Bug 790931 - Broadcast when Sync Android Account is being deleted to many Firefox Apps.

The broadcast is secured with an Android signing-level permission and
specific to each Android Account type, so it is okay to include Sync
password and Sync key.

BroadcastReceiver.onReceive runs in the main thread and has a very
limited life-cycle, so we actually perform the work of cleaning up
after Account deletion in an associated IntentService.  (That work
being: delete the pickle file, wipe the client record from the remote
server, and purge the local shared prefs.)
Bug 790931 - Broadcast when Sync Android Account is being deleted to many Firefox Apps. r=rnewman