Added osin into the source

Will use osin to provide OAuth2 authentication service.
Added dummy OAuth storage backend
Added make directive "test" to do unit test

The target "check" has been used for integration test.
Add dummy endpoint handler to the server
Use config file instead of flag for config

1. Use json to store server configurations.

2. Add example json format.

3. Also change Makefile run target to run with -config ./data/config.json.
Migrate OAuth2 related code to auth.go
AuthStorage load database for API Client info
Can create AuthorizeData in database

Can create AuthorizeData in database by accessing the authorization
endpoint with correct client id.
Implement LoadAuthorize of AuthStorage interface

Load authdata from database.
Fixed example json format

1. All keys must be quoted
2. No trailing comma for the last item
Add error message if config file cannot be parsed
Migrate data related code out to data/data.go

Test code can now use the same data definitions as server.
Minor fix to root Makefile

Use export for environment variables
Move OAuth related code to oauth2
Migrate protocol to data
Restructure the repository

1. Use "gopath" as GOPATH instead of the entire directory.
2. Use single Makefile structure instead of recursive Makefile.
Swap Makefile target test and check

1. Use `make check` for unit testing
2. Use `make test` for integration test
3. Hide commands in `make check` (easier to read)
Start building test for OAuth interface

Only a dummy test function now
Improve logging in oauth2
Integration test triggers authentication callback