Add some organisation to the project.
Cleaning Connection.py, adding HeaderFormatException

Also now ignoring vim swap files.
Add new HTTP_Message class.

Instead of proxying raw data, we parse it and then rebuild a query out
of it.
Various fixes from the last commit.

There were a ton of bugs introducted (as expected) in the last commit.
This fixes them.. samples include:
	- Being an idiot and forgetting how static variables were defined in
	  Python
	- Accidentally chopping \r's out of gzipped messages (breaking them)
Fixed bug preventing connection to hosts with '/'s in name.

Opening a socket to the wrong host, since we aren't cutting the slashes.
Deal with CONNECT message.
Fixed some edgecase errors.

Empty requets, etc.
Adding SSL MITM Support.

We now can intercept SSL connections. We start an SSL client connection
with the server, as well as acting like an SSL server to the client.

We can now sniff and alter HTTPS traffic.
However, this (obviously) generates a client-side warning. The Java
application will have to add the appropriate certificates to Android.
Stop exiting on broken socket read.

This was originally there for debugging. We'll now just close the
connection and continue.
Gzip Decoding

Can now decode Gzip responses as they pass through.
Added Gzip support.
Small bug regarding empty headers
Threaded the proxy server.

Moved from the current messy select-based approach to a thread based
approach.
Fixed imports and added __init__.py
Reenable compression
Merge branch 'master' of github.com:hirish/Stephanie
Made non-compressed responses clearer.
Minor improvements.
More code cleaning.
Renaming Connections to Listeners.