Add passive handlers

passive handlers can be created through the handler.passive decorator.
Their return values will be ignored and should be safe to add to all
connections.

Adding the decorator to all current passive handlers and improving the
handler selection will come in a later commit.
Make all passive handler use handler.passive
Make data selection use probability

Previously data handlers were all or nothing, but that doesn't work
well. Now we have passive handlers being run 100% of the time, since
they do nothing potentially destructive to a connection. For active
handlers we use the same probability as for connections and with
probability p we use all the selected active handlers, with 1-p we use
none of them.

We might later expand this to have per handler probability/selection,
but that gets complicated fast.

Fixes #20
Make most data handlers on by default

Since data attacks now have probability of happening we don't need to
leave destructive handlers off by default.

Only the client specified custom detection and the overly destructive
blockhttp are still defaulted to off.
Merge pull request #23 from google/data_probability

Select data handlers with probability