Base work to turn authStorage to work with gourd

Some base planning work and initial code to use gourd as service
provider in authStorage. Want to get rid of direct call to upper.io.

1. Added definition of ServiceProvider

2. Defined new authStorage to accept gourd session and 2 distinct
   gourd service providers (for client and auth data).

3. Added some comments about future planning.
Relocate data definition

Move API related data definition to "leejo/data".

This is essential to make the oauth2 package free from both data
structure and database implementations.

The oauth2 package should focus on the reception logics of oauth2.
Defined and implemented provider interface

Defined a standard way to implementauth storage with service providers.
Passes service provider and session to storage

1. Use oauth2Provider as oauth2.ServiceProvider and pass to AuthStorage
2. Create and pass session to AuthStorage

Ready to migrate oauth2 code to use service instead of direct upperio call
Update AuthStorage.Clone to actually clone

Originally returns itself. Now really clone.
Update make clean

Also remove things in pkg to prevent "ghost" binary problem.
Update the oauth2.ServiceProvider interfaces

Update the method name to make things clearer.
Replace AuthStorage.GetClient with service
Rewritten Authorize related code of AuthStorage

Rewritten Authorize related code of AuthStorage with service
provider.
Rewritten Access related code of AuthStorage

Rewritten Access related code of AuthStorage with service
provider. Includes Refresh related code.
Removed RefreshService from ServiceProvider

Seems obsoleted to have a separated RefreshService when you
can do the same thing with AccessService.
Phased out oauth2.AuthStorage.Db

Also removed dependency from oauth2 package.