WIP: merge imageutils into astropy core

This is a WIP, but is the PR to merge ``imageutils`` into the Astropy core package.

Notes:

* I have attempted to preserve the history but removed code that simply affected affiliated package infrastructure code.
* The branches and merge history *within* imageutils is lost since I rebased this, but I think this is actually less confusing this way. We just have a linear history for the package.
* I also updated issue numbers in the commit messages to always include ``astropy/imageutils``
* This does not include lacosmicx which can be added separately once the licensing is sorted out. Doing that separately will make reviewing this PR easier anyway
* It is marked as critical because this was assessed as 1.0-critical (not a critical bug though)

This is not ready for review or merging, and still needs updates to the docs, tests to pass, etc.

cc @larrybradley @cdeil @adonath @eteq @hamogu @ejeschke

Is it really advantageous to use `cython` here? I ask since this is trivially done using numpy `reshape` plus indexing (you could even allow one to pick which pixel to use!):
```
In [19]: image = np.arange(1000000.).reshape(1000, 1000)

In [20]: %timeit image.reshape(500,2,500,2)[:,0,:,0]
100000 loops, best of 3: 1.82 µs per loop
```
Also, wouldn't one normally want to average over pixels, i.e.,
```
image.reshape(500,2,500,2).mean(axis=(1,3))
```