Always sign out when activating first account

The accounts manager cannot assume that it is the
only manager affecting which NationBuilder session
Safari currently uses. 

While this is always true, we can be lenient and
require no prior signout if the nation is
different, ie. a use case in which a user has only
one account for each of several nations, instead
of a use case in which a user has one nation with
several accounts.
Refine implicit authentication error handling

Change the interface for the finish-authenticating
class method to not return an error. The error
will be conventionally passing into the completion
handler. This means less required code for the app
developer in the app delegate method.

Refactor the finish-authenticating instance method.
Handle when user stops authorization flow

This ultimately results in bubbling up an error,
but the suggested way to handle it is to not
present it to the user, or at least more as an
inconspicuous note, because the user probably
intended to stop authorizing.
Update accounts manager tests broken by dbdc18d

OCMock has difficulties creating stubs for methods
that take in primitives. This is a temporary fix
until a more general solution is found.

See http://bit.ly/1C6WA46
Refine query string deserialization in Foundation extension

Numbers should come back as numbers, not strings.
Update tests.

Add -isNumeric helper. 

Minor test case reorganization.
Fix occasional crash from signing out in accounts view
Fixup naming of accounts manager internal property
Fixup integration with authentication updates in 2deaf64

Prevent endless loop from the authenticator
handling app-did-become-active notifications too
early. Do this by setting up a one-time
did-become-active observer in the accounts manager
constructor if the latter is called right after
app launch to only load persisted accounts after
the first did-become-active notification.
Fixup incomplete account model updates in 7fb288a

Clarify the default credential identifier.

Harden updating the credential identifier.

Properly have the account model assume
responsibility of fetching persisted credential
from a its own identifier.

Also properly allow the authenticator to
relinquish that responsibility.

Ultimately the above defects led to the accounts
manager falsely identifying new accounts as
duplicates because the same credential was being
returned, leading to the same person info, etc.
Fixup method to update persisted keychain credential

The removed call to delete any existing credential
actually prevented updating any credential. It
also somehow prevented, possibly due to a race
condition, the deletion prevents the proper
subsequent addition of the same credential. 

Ultimately, this led to a persisted account
requiring re-authentication upon being loaded from
disk the second time.
Harden accounts persistence in accounts manager

Also persist when selected account changes. This
ensures the user defaults are up-to-date. There's
not an overhead from writing to disk unless the
number of accounts changes.

Minor logging additions.
Wait for nation slug prompt alert to fully dismiss before switching to Safari
Minor whitespace
Merge pull request #33 from 3dna/peng/refine-implicit-auth

Refine implicit authentication

Fixes a bunch of bugs with the implicit auth flow:

- Occasional crash on signing out
- Persisted accounts always requiring
  re-authentication in Safari. This should almost
  never happen
- Accounts picker shows '(null)' account even when
  user bails from Safari and flow
- Signing into first account will automatically
  use whatever session is in Safari
- Signing into another account on the same nation
  would fail
- Sometimes accounts would fail to persist

NOTE: Does not include documentation updates for
any changed interfaces, and there are some changes
(simplifications, actually).