Merge pull request #14 from mandeepsandhu/examples

Add example applications to O2 source tree
Merge pull request #15 from mandeepsandhu/examples

Twitter Demo: Access tokens NOT comitted on exit
OAuth 2 demo application
Work in progress
O2 bug fixes
Correct handling of multiple incoming connections in O2ReplyServer

O2ReplyServer:
* We are using a single variable to store the client socket
pointer. In case we get multiple incoming connections, we end
up overwriting the socket pointers. Subsequently when we get
the readyRead() signal we don't have a way of getting the
pointer.

Fix is to not store the client socket in a member variable.
The pointer in O2ReplyServer::onBytesReady() is got using the
sender() function. This way we can read data from the correct
socket even when handling multiple incoming connections.

O2:
* There was a bug where O2 was not emitting the linkingSucceeded()
signal if the application was already linked.

Fixed this issue by emitting the signal.
Merge branch 'o2-bug-fixes' into oauth2-fb-example
Merge pull request #16 from mandeepsandhu/o2-bug-fixes

O2 bug fixes
O2 OAuth2 demo application
Added Facebook demo application

Authorization code flow is working, however Implicit grant
flow does not work. Fix is needed in O2.
OAuth 2 demo application
Work in progress
O2 OAuth2 demo application
Added Facebook demo application

The facebook demo app currently supports "Authorization Code"
grant only.
Merge branch 'master' into oauth2-fb-example
O2 OAuth2 demo application
Added Facebook demo application

The Facebook demo application shows how to use O2 for doing
OAuth2 with a provider. It provides the following options:

-o: For fetching and storing OAuth2 access tokens
-v: For validating the stored access tokens. The validator
    works by simply calling a user info url and checking if
    an "error" string exists or not.
Merge pull request #17 from mandeepsandhu/oauth2-fb-example

Oauth2 Facebook demo
Store Facebook expiry token
Store Facebook expiry token as returned by the service

Facebook returns 2 kinds of tokens depending on what endpoint
we are talking to:

1. Short-lived tokens: Tokens used in client-server OAuth,
   have a short expiry time of 2 hours

2. Long-lived tokens: Tokens used in server-server OAuth,
   have a longer expiry time of 60 days

Previously we were storing a hard-coded value of 2 hrs for it
as there was some confusion regarding these values. But now
we'll store whatever value the service returns.

Also, Facebook doesn't follow the OAuth2 RFC and returns a
differently named expiry token - expires, so we'll use this
special name in the O2Facebook class.
Merge branch 'master' into fb-expiry-time-fix
Merge pull request #18 from mandeepsandhu/fb-expiry-time-fix

Store Facebook expiry token as returned by the service