Rename exceptions
tests/testGaussianProcess.py: tweaked the code to avoid a segfault. Unfortunately the tweak
is unexplained magic. I also removed a few unused imports and computation of two variables
that were unused (leaving one that is unused because it can potentially raise an error if the index
is out of range).
Upgrade to XPA 2.1.15 required variable type change
add afw::detection::mergeFootprints()
add checkNormalized(); don't call normalize() and instead set _normalized=true in mergeFootprints().
add Footprint.addSpanInSeries(), and Footprint.clipToNonzero()
add afw::detection::nearestFootprint() function; instantiate a broader range of Footprint functions for int images
Address various issues from Paul Price's in-depth review.

Footprint.h:
    No documentation for new methods and functions.

Footprint.cc:
    Move documentation to header file.
    Indentation is inconsistent. Should always be 4.
    Don't use this-> when there is no need for it, e.g., this->addSpan should be addSpan.
    Paren following LSST_EXCEPT *must* cuddle --- it certainly may not be on the next line.
    Breaks 110 column limit.
    PixelT zero = 0; should be PixelT const zero = 0; Add const also for ix0 and iy0 --- *anywhere* the value will never change, as it helps the compiler write faster code.
    You're iterating with the postfix operator (s++) instead of prefix (++s); this can adversely affect performance in C++.
    What does the comment Ugly! refer to?
    Names foota and footb don't follow naming rules, and are a bit hard to read. Suggest aFoot and bFoot. Similarly with pka, etc.
    const Footprint::PeakList& --> Footprint::PeakList const& (throughout).
    while (1) --> while (true)
    nearestFootprint isn't documented.
    Why do you call INSTANTIATE_FLOAT on integer types???  [I renamed it -- it instantiated functions that were appropriate for *numeric*, not necessarily floating-point, types!]
    remove gratuitous 'typename'
    prefer PTR(Foo) to Foo::Ptr and CONST_PTR(Foo) to Foo:ConstPtr.

HeavyFootprint?.cc:
    Some lines exceed 110 columns.
    Commented out code should be removed

footprint1.py:
    Instead of self.assertTrue(a > b) use self.assertGreater(a, b). This provides a more useful message when it fails.
    Why is the trailing F required on clipToNonzeroF? It should be able to tell from the type of the image.  [fixed]

Also removed stray Footprint.mergeWith() function that got messed up during rebase
Add an overview of CameraGeom, including an example (which will work once DM-902 is fixed).
Try this again. Somehow the changes didn't get committed last time.
Moved the example back to examples, since doxygen cannot find it.
Remove obsolete comment.
Merge branch 'tickets/DM-764'

Conflicts:
	src/detection/Footprint.cc
Moved the example where doxygen can reliably find it.
Fix Camera.detector to support detector-based from systems.
Add a test for the above to tests/testCameraGeom.py
Fix an error in tests/testCameraGeom.py (one test shadowed another -- DM-901).
Add a test for Camera.transform of detector -> different detector.
Add a test that Detector.transform detector -> different detector fails.
All symbols except strings need to include the # (DM-908)
Merge branch 'tickets/DM-908'
Responded to Simon's review:
changed a print statement to an assert, which is an improvement.
Merge branch 'tickets/DM-902'