Speed-up of quantity initialisation

I realised I should really separate the speed-up from the allowance of string/unit initialisation in #1773.

With this PR,
```
a = np.arange(100.)
%timeit u.Quantity(a, u.Gyr)
# 100000 loops, best of 3: 13.8 us per loop
q = u.Quantity(a, u.Gyr)
%timeit u.Quantity(q)
100000 loops, best of 3: 8.49 us per loop
```
With current master, I find 23.9 and 19.4 us, respectively.