add: much of the way toward implementation of the search results table
as a backbone view.  Lacking working infinite scroll and preview pane.
Added infinite scroll to Backbone View based search results.
bugfix: clicking add to cart or preview control re-rendered every row
instead of just the one.
Added logic to render only results in the visible frame (plus buffer on
either side).  a spacer div at the top of the search results acts as a
place holder for rows that have been removed as the user scrolls down.
At the same time, rows are appended to the bottom of the results as they
are added to the results collection.  As the user scrolls up, needed
rows are rendered and rows are removed from the bottom of the results
list (and the end of the results collection)
Significant refactoring of javascript to divide up large javascript
files into logical modules.  The geocoder, metadata viewer, and table
item rendering are each in their own modules now.

The query view (view/search.js) has been refactored so that non-view
logic is now in the model (models/queryModel.js).

The viewport size for search results updates properly now.

Cleanup: some unused functions have been removed.
Fixed info bubble template.  Extra "+" was attempting coercion of text
to a number, resulting in "NaN" being displayed.
Some minor changes to simplify element resizing.  The "#roll_right"
element was moved into the "#left_col" element.  tabs and resize arrows
were moved into a ".content" wrapper.

A change was made in mapDiv.js so that the map starts rendering earlier.
fixed some formatting issues: accounted for scroll bar in layer tables
in non-Mac browswers, changed wrap behavior for layer rows, added a
spacer to the bottom of the cart row so that drop down controls are not
clipped.  Fixed panel resize so that map elements that move with the
panel track correctly.
Fixed some resize issues and set reasonable minimum sizes for
containers.
Bugfix: Scale line didn't render correctly in Chrome.  Invalid argument
was passed to the OpenLayers ScaleLine control.
Improved basemap handling.  More zoom levels are supported, as well as a
"secondary" zoom map to handle cases where a zoom level is not available
on the current basemap.
Bugfix: Issues #6 & #7.  Refactored and fixed dialog issue with
downloadQueue.js.  Also fixed an issue where the template was undefined
for a function in utility.js.  Moved the function to commonControls.js.
Bug fix: getAllLayerInfo did not properly escape LayerIds passed to the
method.
Fixed clear button on advanced search.  Added functions to select boxes
to programmatically select values.
added some simple animations and behaviors to add clarity to the UI.
very similar to behaviors and animations in v.1.x
Added quick fade out and fade in for return of new result set. sometimes
the search is so fast that the user doesn't realize a search has been
performed.
added show only and select all functionality to multiselect dropdowns.
Added sort arrows for sort direction in the "Sort results" menu.

Started to fix the issue in which value for "where" disappears after
geocode/zoom.  It should not disappear until the user moves the map
again.
Fixed the "where" box behavior.  when a term is entered a geocode is
attempted. results appear in an autocomplete box.  If none is chosen,
the first result is taken.  the map is zoomed to the bounds of the
geocoded result.  the returned term stays in the input box until the
user subsequently moves the map or a new geocode is performed.  To avoid
multiple "moveend" events from OpenLayers, "moveend" events are
clustered by setting a delay and triggering a custom event
('map.extentChanged').
- removed print.css from devincludes.jspf; caused funny display in print
function.

- modularized layerRow.js so that the content of the expanded row is
rendered in a separate function.  This allows easy replacement. (if you
want to display the abstract instead of preview controls, for example).