Improving library by adding more methods in URLInterface and ComponentInterface

* adding and implemeting `ComponentInterface::sameValueAs` to compare component string representation value;
* adding and implementing the following methods according to [RFC3986 section 3](http://tools.ietf.org/html/rfc3986#section-3) to `UrlInterface`:
    * `getAuthority`: (returns the `User` + `Pass` + `Host` + `Port` components string representation)
    * `getUserInfo`: (returns the `User` + `Pass` components string representation)
* improving `UrlInterface::getRelativeUrl` method : now another `UrlInterface` object can be used to set the reference