Net status prototype


(Resubmitting this again as it sounds like we're gonna just stick with Python 2).

Hi all.

I'm ready to merge NetStatus code into master. NetStatus has code to do the following things:

- Download, maintain a copy of, validate, and serve network status documents including the network-consensus and server- micro-descriptors.
- Provide a query interface for retrieving routers with desired attributes from network consensus and/or server- micro-descriptors.

Look at the examples in the code and documentation for an idea of how to use this module.

Outstanding issues: #1 #6 #17 #18 #19 #20

Note: although there are still a few outstanding issues, the branch is in a usable state and ready to go for other people to experiment with/use. I think this it's at a stable enough state to merge so it can be used by others (in handshake, circuit creation, path selection, etc.), and I can add in the other sections as we need them.

This is a request for comments and code review.  When people have had a chance to review, I'll do a rebase and fix merge conflicts (right now just .gitignore).