block mutation of read-only array in series
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry

reproduction case:

``` python
In [1]: array = np.array([1, 2, 3])

In [2]: array.flags.writeable = False

In [3]: series = pd.Series(array)

In [4]: series[0] = -1

In [5]: series
Out[5]: 
0   -1
1    2
2    3
dtype: int64

In [6]: array
Out[6]: array([-1,  2,  3])
```

In the case I was running into I was passing a `numpy.memmap` which is a subclass of `ndarray` but was over a read only memory segment so attempting the setitem was causing a segfault. The new behavior matches the numpy behavior:

``` python
In [4]: series[0] = -1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-5-2ad0997d5cf2> in <module>()
----> 1 series[0] = -1
   ...
ValueError: assignment destination is read-only

In [5]: array[0] = -1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-7-f67d1d011a13> in <module>()
----> 1 array[0] = -1

ValueError: assignment destination is read-only
```
