When a new user arrives and want to authenticate here is whats happens:
1. You redirect him to whatever url getLoginUrl() returns.
2. The user logs in on www.linkedin.com and authorize your application.
3. The user returns to your site with a *code* in the the $_REQUEST.
4. You call isAuthenticated() or getAccessToken()
5. If we don't have an access token (only a *code*), getAccessToken() will call fetchNewAccessToken()
6. fetchNewAccessToken() gets the *code* from the $_REQUEST and calls getAccessTokenFromCode()
7. getAccessTokenFromCode() makes a request to www.linkedin.com and exchanges the *code* for an access token
8. When you have the access token you should store it in a database and/or query the API.
9. When you make a second request to the API we have the access token in memory, so we don't go through all these
authentication steps again.