Did some optimizations to AMDetector and CLSAmptekSDD123DetectorNew.  Moved all of the axis, size, rank getters AMDetector.  This removes the requirement to reimplement them all in subclasses at the expense that you now have to fill the list of AMAxisInfo's called axes_.  I also implemented AMDetector::reading1D and AMDetector::reading2D.  There needs to be extensive testing on the SGM to make sure all of the aspects related to the ampteks and scan engine have not been altered in a fundamentally bad way.  Fixes #539 and #540.
Some basic features of AMXRFDetector have been implemented.  There is some spectra access as well as it SHOULD have all the functionality for no change in CLSAmptexSDD123DetectorNew is noticeable.  I built a shell of the single element vortex for VESPERS to test the code and built a bare bones view class which will eventually become the base view for all the AMXRFDetectors.
Fleshed out the base XRF detector view a bit to include all of the functionality that the base class offers.  It is setup in such a way that subclasses should be able to customize the view essentially as they see fit if they don't like anything about the default look and feel.  Added in supportsElapsedTime to AMXRFDetector because not all detectors might have this functionality.  Also provided a default cancelImplementation for AMXRFDetector.  It might need to be made more bullet proof to minimize crashes or bad state changes, but otherwise it should be fine.
Made a new AMAbsorptionEdge class to encapsulate that data to replace the old and stupid QPair of name and energy as QStrings.  I replaced the edges inside of AMElement and then all the effected classes, which was mostly SGM.  I also remade the SGMScanInfo database Q_INVOKABLE constructor to use an AMAbsorptionEdge instead of a QPair.  These will all need to be tested on the SGM to ensure I didn't break any functionality in the transition.
SGM: Fixed the edge name in SGMScanInfo so I don't break that code.
Built AMEmissionLine and propogated it into all of the other other classes necessary for the functionality to remain unchanged but now using the new class.  Fixes #543
Removed the uncessary const to all AMElement pointers because the data was actually safe already.  Just a small code cleanup.
Added some convenience constructors and operators to AMElement.  Started work on making AMSelectablePeriodicTable the main replacement for XRFPeriodicTable.  Created the shell of AMSelectableElement which will replace XRFElement.
Did some code cleanup in AMPeriodicTable and AMPeriodicTableView.  Fleshed out a bunch of AMSelectableElement and fixed a small range bug in AMSelectablePeriodicTableView.
Made a new AMCustomizablePeriodicTable that can be used for periodic table models that need to enhance the periodic table but require more flexibility (ie: not being a singleton) and AMCustomizablePeriodicTableView as a base for customizing views.  Migrated AMSelectablePeriodicTable and AMSelectablePeriodicTableView to use the new classes.  Old functionality has been restored to both classes.
Made a range encapsulation of AMRange to minimize awkward code of passing QPair's of doubles for ranges.  There are still some legitimate uses of QPair in the program, but this should help a lot in readability of code.  Updated all obvious files to use AMRange where possible.
Fixed a comment.
Changed AMSelectablePeriodicTable to save a list of element pointers instead of atomic numbers.  Modified all classes that use the selectable periodic table to use the new getters, signals and slots.
Added some signals to AMSelectableElement for notification on selection changes.  Built a simple base class called AMSelectableItemView that will be subclassed for AMAbsorptionEdges and AMEmissionLines specific views. There are skeletons of AMSelectableElementView, AMSelectableEmissionLineView, and AMSelectableAbsorptionEdgeView.
Changed the getter for absorption edges from edges to absorptionEdges and fleshed out AMSelectableElementView.  It's now in a position to be tested.
Added the new detailed xrf detector view class.  It is only a skeleton currently.
Added the periodic table view and element view to the detailed XRF detector view.  Changed the paradigm for building the periodic table and it's views to where you need to explicitly call buildPeriodicTable/buildPeriodicTableView.
Made sure all of the emission line markers show up properly on the spectrum plot.  Added a class call AMNameAndRangeValidator that does all the work of the name filters and range checking used by AMSelectableElementView and AMXRFDetailedDetectorView.
Minor hack to give Tom advanced access to some fast scan parameters. Added first working version of the crash monitor and reporter system. Will test in the coming weeks to determine what still needs to be done before full rollout.
Added some simple logic to the assignment operator in the AMAbsorptionEdge, AMEmissionLine, and AMElement classes.  Built the AMRegionOfInterest class and fleshed it out.  I haven't registered it to the database yet though.