Fixed Gaussian2D model

These are fixes to the ``Gaussian2D`` model.  Specifically, the ``b`` parameter was incorrect in the code (but correct in the docs).  Also, the ``a`` parameter was incorrect in the docs (but correct in the code).  This PR also updates the derivatives based on the correct ``b`` value.  The other changes represent some refactoring to hopefully make things a little clearer/cleaner.