New assumptions context manager

A draft for a context manager for new assumptions.  This is a historic [issue](https://code.google.com/p/sympy/issues/detail?id=1047) and I suspect that people have strong opinions.

It's also a long standing issue.  Hopefully this gets the ball rolling.  

Example

```Python
In [1]: from sympy.assumptions import assuming
In [2]: print ask(Q.integer(x + 1))
None

In [3]: with assuming(Q.integer(x)):
   ...:     print ask(Q.integer(x + 1))
   ...:     
True
```

Discussion and ideas welcome.