Refactor dotplot and added hit select to zoom

Remove html code from the dotplot code into a template file. Fix bug
in zoom view where a hit can't be selected.

* Split html generated in dotplot.pl to
* Split hit detection and hit selection
* Hits are now selected with a single click and double click navigates
  to GEvo.

	modified:   web/SynMap_new.pl
	modified:   web/bin/dotplot.pl
	modified:   web/js/xhairs.js
	modified:   web/run_dotplot.pl
	modified:   web/tmpl/SynMap.tmpl
	new file:   web/tmpl/widgets/Dotplot.tmpl
Refactor PlotViewer to take an element reference

	modified:   web/js/synmap.js
	modified:   web/tmpl/partials/synmap_results.tmpl
add resize method to Histogram

	modified:   web/js/synmap.js
add resizing support

The dotplot and histogram are now resizable.

* Add new Resizable decorator

	modified:   web/js/synmap.js
	modified:   web/tmpl/partials/synmap_results.tmpl
Add drag support to histogram and dotplot

	modified:   web/js/synmap.js
	modified:   web/tmpl/partials/synmap_results.tmpl
add builder object for dotplot creation

Refactor PlotViewer to now delegate dotplot generation to the builder
object. The PlotViewer has been simplified to only manage plot
interactions.

* Add PlotBuilder to generate the dotplot
* Simplified the PlotViewer object

	modified:   web/js/synmap.js
Fix coloration when dotplot is sorted

Add onChange event to listen for changes in the layers selected and when
a plot is loaded.

	modified:   web/js/synmap.js
	modified:   web/tmpl/partials/synmap_results.tmpl