Added Latch provider support
Fixes LightOpenId Issue #65
Google.php - multiple updates

The google provider used a deprecated scope, did not make use of the verified email and imported mail contacts only

google recommends the following scopes :
https://developers.google.com/+/api/oauth#scopes

It is a bit hard to define a google provider because google consists of so many different services and APIs. However:
hybridauth should at least follow the new OAuth scopes to support google+  but leave it to the user to customize the scopes ...

1. Updated scopes and made them dynamic
- auth/plus.login as the main log in scope
- auth/userinfo.email for verified email (optional now)
- /m8/feeds/ for gmail contacts (optional now)

[if a user does not want to use contacts, and just wants a plain profile, he can use .../auth/plus.me as only scope as well,
see http://hybridauth.sourceforge.net/support.html?place=msg%2Fhybridauth%2F9RL9irlM7ws%2FLz87NyLq9ZoJ
]

The advantage of the new login scope is that the user can select which social connections hybridauth is able to use (e.g. which contacts we get)
wrapped in a brilliant UI.

2. Makes use of verified mail now depending on the scope 
- by making a request to /userinfo

3. Supports google+ now
- google+ profile
- google+ contacts

4. Updated API versions 
- v1 for "new scopes"/google+
- v2 for userinfo
- v3 for gmail contacts
New provider for PixelPin
Guess 'base_url'

Use the current URL as 'base_url' if it isn't provided
Revert a hack that blocks scope flexibility

Hardcoding the scope disables the settings that are defined in the application itself, and blocks per-implementation scope configuration.
The scope can be defined when creating/updating a LinkedIn app, so it's useless to hack it.
The scope should be hardcoded only if it can be set elsewhere, out of the library, so that implementation can define their own scope directly, so not as a constant.
Application scope setting seems the most flexible solution for the moment.
Removed duplicate empty displayName logic block

The code was checking for an emptyDisplay name before trying to set the displayName based on the friendly name. It was also swapping the firstName and lastName.
    
This changes removes that code block and fixes the logic in the code.
two paypal providers, oauth 2 and openid
Merge pull request #119 from redaktor/patch-1

Google.php - multiple updates
Merge pull request #114 from latch-app/master

New provider support: Latch
Merge pull request #120 from lukos/master

New provider - PixelPin
Merge pull request #125 from crodas/guess_base_url

Guess base url
Check if primary url exists

Some profiles might not have set a primary url (mine doesn't), so better check for it first.
Removed MySpace
Merge pull request #161 from discant/master

Removed MySpace from installation instructions
Merge pull request #156 from jhubert/patch-1

Removed duplicate empty displayName logic block
Removed redundant check.
Merge pull request #160 from mattsches/patch-1

Check if primary url exists - Google provider
Merge pull request #158 from nineinchnick/paypal

paypal, two providers, oauth 2 and openid
Merge pull request #146 from Facyla/patch-1

Revert a hack that blocks scope flexibility - LinkedIn provider