Salesforce SDK Manager

I'm doing this on a feature branch, as I want to get some review, but it's not probably quite ready yet, across the board.

`SalesforceSDKManager` takes over responsibility for app-level configuration and launch procedures.  Using `[SalesforceSDKManager launch]`, the framework will:

- Validate an existing passcode at launch, prior to other actions, and decoupled from direct connection with authentication.
- Attempt to authenticate, if no credentials are present.  Skips authentication if current user already has credentials.
- Handles the transitions into the foreground, for passcode verification, login host changes and logout changes.
- Handles logout and user switching transitions.

You can see the consumption pattern in RestAPIExplorer's `AppDelegate`.

**TODO:**
- Most of the down-the-middle stuff works, but I need to verify some of the edge cases, particularly around killing and restarting the app while passcode creation is being presented.
- Unit tests to verify the flow
- Implement "manual" authentication option, so that you can configure `launch` to not automatically attempt to authenticate (if your app needs deferred authentication).

Cc: @lqingq @jeanbovet