Various improvements, and URL calculation fix

#### Database class

The Database class have been improved, to support various constructor parameter types.
The connection attribute is now protected, to prevent any temptation to use this class to manipulate the Thelia database (the ORM **SHOULD** be used).

**/!\ EXISTING PLUGINS ARE IMPACTED BY THIS /!\**  (but it's better now than later...)

#### URL Generation
In URL::absoluteUrl(), a duplication of the subdirectory name happens in the generated URL when Thelia is installed in a subdirectory, and when $path was calculated with Router::generate(), which returns an absolute URL, starting at web server root, not Thelia root.

For example, if Thelia is installed in /thelia2, we got something like /thelia2/my/path
As base URL also contains /thelia2 (e.g. http://some.server.com/thelia2), we end up with http://some.server.com/thelia2/thelia2/my/path, instead of http://some.server.com/thelia2/my/path