Convert UsableUri to get IDN in non-puny form

Added method to UsableUri to get the IDN in non-puny form
Can I suggest a couple more tests. I expected the first one I expected to pass, so I think it's worth keeping in there as a comment. The last one fails currently because this._authority is set in toUnicodeHostString(). 

```
        // test idn round trip 
        // XXX fails because idn is not handled here (it is converted to punycode in UsableURIFactory.fixupDomainlabel())
        // assertEquals("http://øx.dk", new UsableURI("http://øx.dk", false, "UTF-8").toUnicodeHostString());

        // non-idn domain name
        assertEquals("http://example.org", new UsableURI("http://example.org", true, "UTF-8").toUnicodeHostString());

        // ensure a call to toUnicodeHostString() has no effect on toString()
        UsableURI uri = new UsableURI("http://xn--x-4ga.dk", true, "UTF-8");
        assertEquals("http://øx.dk", uri.toUnicodeHostString());
        uri.setPath(uri.getPath()); // force toString() cached value to be recomputed
        assertEquals("http://xn--x-4ga.dk", uri.toString());
```