Proxy() Has No "__exit__" Attribute
Well, `Proxy` works by overriding `__getattr__()` and `__setattr__()`...I think the crux of the issue is that these overrides do not cover special methods such as `__enter__` and `__exit__`. This is described in the [Python documentation](https://docs.python.org/3/reference/datamodel.html#special-method-lookup).

The fix in this case is to add specific overrides for `__enter__` and `__exit__` on the `Proxy` class itself. An alternative, which should work, is to use `with database_proxy.connection_context():` (which has slightly different semantics, in that it does not also automatically wrap with a transaction). Thank you for responding so quickly!

I think that `with database_proxy.connection_context():` might work for my use case, and seems like a good solution. If not, using a custom context manager isn't bad either. Thanks! Well, either way it's fixed in `master` and the fix will be included in the next release.
### Version, System, Python Info

* Peewee v. 3.6.4
* Python v. 3.5.2
* OS: Ubuntu 16.04 LTS

### Description of Issue

The docs mentions that we can use databases as a context manager for connections. I have also lately taken to using Proxy() to test an application's behavior on multiple databases. I ran into the following quirk:

```
import peewee as pw

database_proxy = pw.Proxy()
database = pw.SqliteDatabase("foo.db")  # So far so good

database_proxy.initialize(database)  # Initialization is working great

with database_proxy:  # At this point in the code, an AttributeError is thrown over __exit__
    do_things()
```

It seems that unlike a regular database object, a Proxy made database after initialization cannot be used as a context manager.

### Work Around

To get around this, I wrote a small context manager that manages the connection to the Proxy database. Then I put this context manager in a decorator I use to manage table creation, connection, and other boilerplate code for a function.

I am not sure if this is in line with the best practices, and if it is not I'd love to see the proper way of handling such a use case.

What is the recommended course of action here?