DM-240: CModel magnitudes

This PR brings a lot of code over from the HSC fork, but with some improved documentation, a few code cleanups, and a modified interface to work with the new measurement framework in meas_base.

There's a lot to absorb here, so please don't hesitate to contact me (HipChat is probably best) for live discussion on some of the trickier bits (even if you're working over the weekend - I can't promise I'll be free, but there's a good chance I would be).  In general, here are some tips on where to start:
 - Check out the Doxygen comment at the top of CModel.h - it includes a section describing all the classes and how it fits together.
 - You may want to start with the Python code in cmodel.py, and trace that back through the C++, to go from high-level stuff to low-level stuff, rather than trying to read the code in the order it's written.  If you go in the order written, you'll tend to see lots of bits and pieces that don't look related before you get to the stuff that ties it together.
 - I can put together a stack that has this all built on tiger so you can play with a live copy and look at the compiled Doxygen if you like; I wouldn't want to burden you with trying to that yourself, as you'd have to build against the LSST fork and use a bunch of custom branches (all off in review to other people).  I haven't done that yet, though.
It's a piecewise function in the ellipticity magnitude - it's constant in the inner region, and then a softened ramp in the middle region, and then zero outside.  But the Prior base class interface uses {eta1, eta2, ln(r)} for its parameters, not {|eta|, ln(r)}, so the integral over ellipticity is a radial integral in polar coordinates.  I assume the annulus you're referring to is the middle section of that piecewise function, in that radial polar integral.