Fix matching of request headers

With the fix #163 I've ran into several new issues on my previously recorded tests. This set of commits fixes them or provides ways of circumventing them.

It also introduces an internal change in Nock so that all headers field names are lower-case. As per HTTP/1.1 these are case-insensitive and previously we used lower case field names in some places whereas in others we didn't. This change shouldn't break user code as it should be resilient to case-insensitive header names *but* I have no idea of how common is that scenario so I recommend raising the minor version.