setup.py for MongoDBProxy
Let AutoReconnect exception bubble up to caller after 5 failures
Don't try to wrap non-callables (so that, e.g., db.name will work)
Be more careful about which attributes and keys get wrapped

Only wrap things that are callable, so that, e.g., properties (like
"db.name") will continue to work.

Also, __getitem__ should fetch item from self.conn, and __getattr__
should fetch attr from self.conn, and they shouldn't be mixed up.
Make classes a little more user-friendly (__dir__, __str__, __repr__)