Feature/openid connect

Added interfaces to all the entities, created factory for entity creation, updated examples to reflect the changes, updated unittests, updated phpdoc to reflect all changes.

With this pull request people will be able to use their own entities (Doctrine, propel, etc), use their own factory to have the libraries code generate their own entities.

Added support for OpenID Connect 1.0, only "grant_type" authorization_code is supported for now
Dear @philsturgeon could you please provide detailed comments instead of "Bad change" and "Hello whitespace" so we can fix problems accordingly? Thanks.