Segmentation photometry and morphological properties

This large PR adds two new functions to perform photometry and calculate morphological properties of sources defined by segmentation images (e.g, from SExtractor or made with `detect_sources`).  When the segmentation image is defined using a thresholded flux level (e.g., `detect_sources`), `segment_photometry` is equivalent to performing isophotal photometry in SExtractor.

I still need to write tests for these new functions, but this is ready for review.  I've done some comparisons to SExtractor, and with the same input segmentation image and background, the photometry and morphology results are identical.

Docs for updated `detect_sources`:
* http://www.stsci.edu/~lbradley/photutils/segmentation/api/photutils.detect_sources.html#photutils.detect_sources

Docs for new `segment_photometry` and `segment_properties` functions:
* http://www.stsci.edu/~lbradley/photutils/segmentation/api/photutils.segment_photometry.html#photutils.segment_photometry

* http://www.stsci.edu/~lbradley/photutils/segmentation/api/photutils.segment_properties.html#photutils.segment_properties

New `SegmentProperties` class:
* http://www.stsci.edu/~lbradley/photutils/segmentation/api/photutils.SegmentProperties.html#photutils.SegmentProperties

I'm not sure how to best handle this.  I actually do want `error` and `gain` to be separate.  For source detection (e.g. ``detect_sources``) where the detection is determined by some S/N above the background, the `error` should include *only* sources of background noise (i.e., you want sources at some sigma above the background noise).  On the other hand, for the photometry, one must include the Poisson error of the sources, hence the need for `gain`.  Without `gain`, the `error` array input into `detect_sources` would need to be different from the `error` array input into `segment_photometry`.  I think that would lead to more confusion.  The description of `gain` and `error` are the same as currently in `aperture_phometry()`.  SExtractor also does the same thing with gain and errors (but background-only `error` is input as a "weight" image, with weight type of RMS).

For the cases of other (non-Gaussian) error calculations, one can simply not input an `error` in `segment_photometry` (the photometry is unchanged).  The returned `coords` and `values` properties gives the list of pixel coordinates and values of each segment and the `cutout_image` (or `cutout_image_maskedarray`) gives the 2D representation.  One could use these for custom error calculations, similar to that suggested in https://github.com/astropy/photutils/issues/161.

But, I think I'd prefer keeping the Gaussian error propagation in here (I realize I'm biased, but I suspect that is the most common use case, e.g. those moving from SExtractor).

@astrofrog, @eteq, @bsipocz  Thoughts?