Rebel branch

It seems like the parse method does not escape characters properly before split is invoked on the uri. It causes it to throw an InvalidURI error on URIs like
    
'http://foo:foo,<@foo.com:8080'
    
A test case has been added for the example uri at commit b280822
    
To address the situation, I have added a call to escape before the split is invoked.
    
I am not entirely sure this is the best way to fix this matter, so feel free to comment on the matter. Please reject the patch if it's not necessary/useless/irrelevant. 

This may be similar to http://bugs.ruby-lang.org/issues/1466