Pull Request for Issue1006 - Can't sort/filter by run when opening scans in GSE

Added a new ui class AMSortFilterScansWidget, which is a specialization of AMSortFilterWidget, designed for the filtering of Scans - including a combo box for filtering runs (defaults to showing all runs). 

This involved adding some functions to expose data required by the widget/proxy models to get the list of runs.
This is the only thing in here that I'm not totally happy with. Strictly speaking the collection should always live at least as long as the widget, and so passing out the address like this shouldn't be an issue - but it's a bit of a smell. I was looking to avoid doing a potentially expensive copy of the hash in cases where a user had a boat load of runs.