Do not instantiate Repos for each request

Now Repos objects are instantiated once on server start and are reused for all connections.
This lead to several consequences:
  * Repos no longer work with absolute URLs and are instead given path relative to their root.
  * Repository UUID no longer depends on hostname
  * base_url is now connection-specific

Also, `reparent` now validates its argument and doesn't allow to go outside of repository.
Use threading instead of forking

By switching from fork to threads we open an
opportunity to build proper Git<->SVN mapping cache
and keep it in-memory.