Replace session based logic to token based one.

 - backend server handles token based request for every REST API
   so backend server doesn't need to keep any state of requesting client.
   To access resource of node server, clients first must get access token from backend server.

       1st party app : 'Resource Owner Password' grant type
       3rd party app : 'Authorization Code' or 'Implicit' grant type

   In case of 1st party app, it can get access token using local account and social accounts
   1st party app should fill 'username' and 'password' field of
   'Resource Owner Password' request body like the followings.

        * local account case:
          username: <registered email>
          password: <registered password>
        * social account case:
          username: <social app's name>
          password: <social app's access token>

          Available social app's names: 'twitter', 'facebook', 'google', 'yahoo', 'linkedin', 'github'
          Social app's access token can be recieved from backend server after authentication to the social app

- Refactoring frontend based on angular.js for OAuth2 flow
  frontend saves access token information issued by our backend server (not access token per social apps) into its localstorage.
  we assume that the localstorage is securly kept by isolation policy of web browser or iOS/Android.
  saved token information is used to access resources of backend server by frontend
Seperate oauth2 provider and rest api provider from existing code

 'oauth2-restapi-server' consists of two parts mainly.
 - oauth2 provider (/oauth2_server)
 - REST api provider (/api_server)

 I considered that oauth2 provider and api provider can be run on different processes
 So, I sepereated functionalities of each provider into other files.
 This lets you customize oauth2-restapi-server more easily according to your server architecture for product.