The above fails if `args[1]` is not a scalar.  i.e., it's legitimate to do:

```
np.power([1,2,3], [3,4,5])
```

but

```
>>> np.power(np.array([1,2,3]) * u.m, [3,4,5])
In [8]: np.power(np.array([1,2,3]) * u.m, [3,4,5])
ERROR: TypeError: int() argument must be a string or a number, not 'list' [astropy.units.core]
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-8-5bafa92788e4> in <module>()
----> 1 np.power(np.array([1,2,3]) * u.m, [3,4,5])

/home/mdboom/python/lib/python2.7/site-packages/astropy-0.3.dev4685-py2.7-linux-x86_64.egg/astropy/units/quantity.pyc in __array_prepare__(self, obj, context)
    175         if function is np.power and result_unit is not None:
    176             if units[1] is None:
--> 177                 result_unit = result_unit ** args[1]
    178             else:
    179                 from . import dimensionless_unscaled

/home/mdboom/python/lib/python2.7/site-packages/astropy-0.3.dev4685-py2.7-linux-x86_64.egg/astropy/units/core.pyc in __pow__(self, p)
    265         else:
    266             # allow two possible floating point fractions, all others illegal
--> 267             if not int(2 * p) == 2 * p:
    268                 raise ValueError(
    269                     "floating values for unit powers must be integers or "

TypeError: int() argument must be a string or a number, not 'list'
```

I think it's fine to punt on this, but maybe we should add a check here to get a better error message out.