Problems with unicode dtypes with old numpy versions

NumPy 1.4 (and potentially 1.5 ?) cannot deal with dtypes specified as unicode strings, .e.g. all of the following do not work:

```python
np.arange(10, dtype=u"float32")
np.dtype(u"int32")
```

The way the future package is currently use means all string literals are unicode objects even in Python 2.

There is already some discussion on the mailing list:
http://lists.swapbytes.de/archives/obspy-users/2014-June/001395.html

The following is copy from the latest message on the thread

The really bad news for us is that the same issue occurs for all numpy functions accepting a dtype argument, e.g.
```python
np.arange(10, dtype=u"float32”)
```

also does not work with numpy 1.4 :-(

So we could with either:


1. replace all calls to numpy with dtype settings with 
    ```python
    np.arange(10, dtype=native_string("float32"))
    ```

2. do not use string dtypes, but instead
    ```python
    np.arange(10, dtype=np.float32)
    ```

3. Monkey patch most numpy calls

4. Cease support for NumPy 1.4 with the next release

5. Revert use of the future package in the code base


Number 5 is not really an option as otherwise the future package works remarkably well by now. Neither is 4 as Debian/Ubuntu/RHEL and other long term support linux distros still run that numpy. That leaves 1, 2, and 3.