Fix #354: support slash in key names

Quote 'key.name' properly when used in URL path / query string.

Fixes #354.
Splitting out tests?  Adding helper methods?  How is that going to help with 'too-many-lines`, which is a module-level limit (http://pylint-messages.wikidot.com/messages:c0302)?

WRT `too-many-locals`:   this is *unit test code* we are talking about here:  adding indirections to appease lint can have a cost in terms of readability.  The most important thing about a test is that the reader can verify that it's setup / assertions exercise the code path being tested.

I find those arbitrary limits debatable for library code, but pointless (even harmful) for tests.