Session based ConnectorMetadata

This is implementation of Session based ConnectorMetadata.

The fundamental change is

* moving Session class under api
* ConnectorMetadataProvider which creates/reuse ConnectorMetadata based on the given Session

By this change, a plugin can utilize session information ex, Session.getUser. At later, more fields could be added onto Session.