App-Dependency checks & more verbose app-activation errors

Apps can now define dependencies in their info.xml like this:
```xml
        <dependencies>
                <dependency>
                        <id>appframework</id>
                        <version>0.100</version>
                </dependency>
                <dependency>
                        <id>files</id>
                        <version>1.0</version>
                </dependency>
        </dependencies>
```
@bartv2 @icewind1991 @karlitschek @DeepDiver1975

While doing that it was sort of necessary to work on better app-activation error messages.
If activation of an app fails, it now directly says what failed, instead of saying a generic/unhelpful "Error while enabling app".
@owncloud/designers 

Fixes #4010