Public API for OC6+ (includes AppFramework)

**Public API**
The basic concept of the public api is based on following criteria:
- the API is built upon interfaces in the public namespace \OCP
- the interface IServerContainer acts as the central factory to retrieve the implementations of the interfaces
- no public api class is allowed to use any private interfaces (as parameter, return type, exception or base class)
- OC::$server acts as the unique entry point to retrieve the IServerContainer implementation

The public API requires further enhancement - which is documented in https://github.com/owncloud/core/issues/4863

**AppFramework**
This pull request contains an adopted sub set of the AppFramework wrapped with an public interface.
At this point in time the public access is very limited and will be extended in the upcoming days.

FYI: @karlitschek @butonic @Raydiation @bartv2 @icewind1991