HttpRequest: allow custom http methods

 * The W3C XmlHttpRequest testsuite likes to use "CHICKEN" as a method.
 * Also add constants for all specified methods in HTTP 1.1.
BUrl: fix handling of @ character

 * @ is a separator (between user:password and host) only if there are
no slashes before it
 * All slashes in user and password should be urlencoded (as well as any
@ and :)
 * On the other hand, it's possible to have @ as part of an URL path or
query. An example is Google Maps.

Gets Google Maps working.