Cleanup database handling

Long overdue cleanup of `OC_DB` and putting the public database interface on level with the private one

- Remove implicit prepared statement cache
- Remove `\OC\DB\ConnectionWrapper`, make `\OC\DB\Connection` implement `\OCP\IDBConnection` instead
- Extend `\OCP\IDBConnection` to cover all the use cases
- Split of generating connection parameters to `\OC\DB\ConnectionFactory`
- Move database connection logic to server container, removing all static state from `\OC_DB`

cc @DeepDiver1975 @PVince81 @th3fallen 
This class isn't need anymore (the functionality it provides is available elsewhere) but it's part of the public api and used so we cant remove it