httputil: use compiled re patterns
httputil: use compiled re patterns

This is slightly faster than using the builtin cache, e.g.:

With benchmark below (Python 3.7, Linux):

before: 0.7284867879934609
after:  0.2657967659761198

```py
import re
from time import perf_counter

line = 'HTTP/1.1'

_http_version_re = re.compile(r"^HTTP/1\.[0-9]$")

start = perf_counter()
for i in range(1000000):
    _http_version_re.match(line)
print(perf_counter() - start)

start = perf_counter()
for i in range(1000000):
    re.match(r"^HTTP/1\.[0-9]$", line)
print(perf_counter() - start)
```

dongpinglai/my_tornado,tornadoweb/tornado,dongpinglai/my_tornado,mivade/tornado,lilydjwg/tornado,dongpinglai/my_tornado,allenl203/tornado,allenl203/tornado,bdarnell/tornado,bdarnell/tornado,dongpinglai/my_tornado,allenl203/tornado,dongpinglai/my_tornado,lilydjwg/tornado,mivade/tornado,lilydjwg/tornado,bdarnell/tornado,mivade/tornado,tornadoweb/tornado,bdarnell/tornado,mivade/tornado,tornadoweb/tornado,allenl203/tornado,mivade/tornado,dongpinglai/my_tornado,bdarnell/tornado,allenl203/tornado,tornadoweb/tornado,lilydjwg/tornado