ENH : minor speed up

for squaring **2 beats np.power

In [37]: tt = np.arange(1000, dtype=float)

In [38]: %timeit tt**2
1000000 loops, best of 3: 1.95 µs per loop

In [39]: %timeit np.power(tt, 2)
100000 loops, best of 3: 15.4 µs per loop
API : moved fit_quad_to_peak -> fitting/__init__.py

This is a fitting (albeit a simple one) function and should
not be hidden in the spectroscopy module.
ENH : added 1D peak refinement

This is a bit of frame work to refine the locations of peaks (or
valleys in principle) of 1D curves.  The assumption is that the
location of the extrema has been identified to pixel(sampling)-level
accuracy and the user has a function that will refine a single peak.

This commit includes
 - peak_refinement
    - logic to loop over all the peaks
    - call refine on each peak
    - marshal the output back to the user
 - two refinement functions
ENH : add filter to return the N tallest peaks
ENH : add filter function based on peak height

Uses ptp over a fixed window.  This is a proxy for aspect ratio/second
derivative assuming the peak is symmetric.
MNT : minor pep8 clean up
ENH : added classes for calibration data

 - HKL : subclass of namedtuple for dealing with hkl values
   - it _is_ a tuple
   - ensures values are always integers
   - provides convenience method length to take L2 norm
 - CalibrationAngles : class to hold 2theta calibration data
   - knows about:
      - lattice parameter
      - standard name
      - the two theta values
      - the hkl for those angles
      - the wave length used for measurement
   - protects data via read-only properties to reduce the chances of
     accidental mutation
   - provides convenience method `convert_2theta` which will return
     the angles at a different wave length

 - convert_two_theta function
   - math to calculate 2theta angles at other wavelengths.
TODO : improve calibration data access class
ENH : added calibration module

 - blind estimation of d from a radially integrated powder-pattern
BUG : fixed transpose error

Now returns the center (row, col)
MNT : over-hauled detector2D_to_1D

 - updated doc-strings
 - might still have transpose errors
 - added support for pixel size
 - corrected kwargs to match core_keys
ENH : added binning helper function

 - function takes an image, a function to convert coordinates to 1D
   and does binning

 - one R2 -> R1 function (radius)
BUG : make failing test fail
TST : fixed tests
ENH : added warp function to return phi

azimuthal angle at each pixel
ENH : useful itertool helper function

Lifted from python documentation, link in source
ENH : added beam-center refinement

Added function with refines the center of the powder pattern.

Requires the whole ring to be visible as it relies on a Fourier
component.
DOC : update docstrings and comments
MNT : changed names of some variables, doc typos
DOC/MNT : doc fixes, rename functions

 warp_to_radius -> pixel_to_radius
 warp_to_phi -> pixel_to_phi