Introduce RestrictedString type for HTTP request params

To make critic crash proof when it comes to bad input at the
HTTP level, we're going to need quite a few checks for string
length and "allowed characters" whitelists. Instead of coding
this as lots of if statements in each operation, this new class
will allow us to do that using the existing type checker.
Disallow "/" character in repository short names

Before this fix it would crash with OSError trying to mkdtemp
a directory like: /var/lib/critic/relay/a/b_branchtracker_HEA7Bq
If this was fixed one would run into "Page not handled: /a/b/SHA1"
when trying to view a commit and imo it's not worth the added
complexity to special case "/" on a lot of different places.
Add TC for "Disallow "/" character in repository short names"