Fix bug in Quantity._decompose()

This fixes the following bug in ``Quantity._decompose``:

```
 In [17]: q2 = np.array([1,2,3]) * u.m / (2. * u.km)

In [18]: q2.decompose()
Out[18]: <Quantity [ 0.0005  0.001   0.0015] >

In [19]: q2.decompose()
Out[19]: <Quantity [  5.00000000e-07   1.00000000e-06   1.50000000e-06] >

In [20]: q2.decompose()
Out[20]: <Quantity [  5.00000000e-10   1.00000000e-09   1.50000000e-09] >
```

The original quantity is being modified every time ``decompose`` is called, because the code was incorrectly assuming the value was being copied, but it was being references for arrays.

@mdboom - can you review this?