Add a pushd context

I find that I write this little boilerplate all the time and I think
other sh users would find it useful as well. This simply creates a
context to run commands in another directory and ensures that the
original working directory will be returned to.

Usage:

```python
from sh import pushd, pwd

pwd()
with pushd('/tmp'):
    pwd()
pwd()
```