commit.py: eliminate static dirs/files cache

In order to support multithreading, connection-specific info must not be stored in shared objects.
Thus, move Dir.dirs and File.files caches into Commit command.
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.
Delete unused code
Remove repos.py

Since ae0d5c0c SVN backend no longer exists, so we don't
need Repos abstraction anymore
config.py: switch to ConfigParser

Instead of hackish regex-based config file parsing,
use standard Python ConfigParser module
2to3: convert except statements
commands.py: instantiate command only once
server.py: remove redundant flushes
server.py: remove redundant stderr/stdout initialization

stderr/stdout are initialized on server start, there's no need
to repeat that on every connection
editor.py: PEP-8 reformat
server.py: remove unused read(), inline send()

The only user of send() is send_msg, so just inline send()
into it.
client.py: move find_repo to server.py

This looks better.
client.py: inline parse_client_greeting() into connect()
server.py: clear self.data after use
config.py: use ini-file for users storage
config.py: allow specifying repo uuid in config

Now repository sections have optional 'uuid' parameter to specify repo uuid.
server.py: report exception stacktraces to client

To ease debugging and error reporting, dumb exception stacktrace to users
server.py: suppress exception when client is lost

Workaround bug http://bugs.python.org/issue14574 by suppressing exception from StreamRequestHandler.finish
Add LICENSE file