Moving tor response classes into their own module

As we add more response classes it'll be messy to sprinkle them all about the
codebase. Making a single 'stem.response' module that'll contain them all.
These could probably do with some more love so I'll next see if I can make them
any tidier.
Single retry for socket connection

I just had integ tests fail due to an interrupt while trying to connect to the
tor control socket. This is the first time that I've seen it, so this isn't
much of a concern, but connecting to a socket is idempotent so we can do with
retrying it once if we fail.
Adding an is_ok() method to controller responses

Method added by Ravi during his safecookie work. Stealing it a little early
since I want it for refactoring that I'm doing.
Being more anal about 'OK' status checking

Refusing to parse messages that lack a 250 response on all lines, and checking
for a 'OK' status on the last line (and only the last line).
Renaming getinfo 'values' attribute to 'entries'

The name 'values' has bugged me for a while because it's a dictionary, so users
might end up typing things like "my_getinfo_response.values.values()". Renaming
it to something that's still generic but without these issues.
Cleaning up response classes

General refactoring of the response classes.
Moving ControlMessage and ControlLine into stem.response

The ControlMessage and the ControlLine instances in it are the... well,
messages that we get from tor. It belongs in stem.response so moving it there.

Functionally this is fine, and I'm happy with the tests in a functional fashion
as well. However, all this splitting and refactoring has made the tests a mess
in terms of what the test functions belong to (some test.unit.response tests
are checking stem.connection functionality, for instance). More cleanup work to
do there...
Initial sphinx autogenerated content

Results right after running 'sphinx-quickstart'
Ignoring sphinx build output

Build artifacts from sphinx are placed in 'docs/_build/*', so having git ignore
it.
Adding module metadata (author, version, etc)
Configuring sphinx documentation attributes

Setting attributes and toggling attributes for the autogenerated sphinx
documentation. This seems like a pretty slick tool, though I'm still puzzling
out how to make it index all of stem. It seems to only register modules that I
explicitely tell it about - I'm probably missing something...

Also still deciding between the default and haiku themes. Ruled out the others.
Adding basic stem intro to sphinx index
Generating sphinx docs for all stem modules

Using the sphinx-apidoc command to generate documentation for all stem modules.
I'm doing this via the make file to simplify the documentation creation process
(you still just need to run 'make html'). Also removing the windows make.bat
file since I'm not gonna be keeping it up to date. We can resurrect it if
someone volunteers to maintain it.
Skip recreating unchanged docs

Greatly decreasing the time it takes to generate documentation when pydocs
haven't changed. Sphinx is smart enough to avoid running against files whos
last-modified timestamp hasn't changed, but not smart enough to check the hash
of the content. Hence using rsync to avoid modifying our pydoc derived content
unless the pydocs have changed.
Removing autogenerated rst files via clean target

The html target creates some rst files, so removing them when 'make clean' is
ran.
Converting stem.process to reStructuredText
Converting stem.version to reStructuredText
Missed linking a funcion
Switching to the haiku theme

The haiku theme is lighter, and lacks a left-hand bar which makes the content
far less cramped. All in all, looks far nicer for the content that we have so
far.
Converting stem.connection to reStructuredText