start with all expected types, then we'll remove the ones that are too hard to implement
rudimentary handler, consider flask if we ever want anything fancy, such as digest auth. ssl is doable with this codebase, but requires openssl certs for every install... could allow the user to pass them in at the constructor, but seems like an unused feature unless we ship something that is easier to setup
..and stopping for now. How do we get our state down to the handler? globals (ewww)? class-currying? ???