ISSUE-97 Consolidate product listing pages into one shared code base

There are numerous places in the catalog pages where we display lists of products, either as full pages or 'boxes' within a page. Examples of pages are
main_page=specials
main_page=products_new
main_page=products_all
main_page=advanced_search_result
etc.
Examples of 'boxes' are
main_page=index
main_page=shopping_cart (where the cart is empty)
etc.

The current problem with the above is that they tend to duplicate a lot of code,
especially where they also need to respond to filtering.
It is also difficult to add/change the code for contributions. e.g. where you might want to add a new 'box' for say upsell.

The new code base uses a set of classes to build product queries, add filters and format results for output in a way that is much easier to override and hook into using observer/notifiers.

There is some initial documentation at
https://confluence.zen-cart.com/display/PUBDOC/Listing+Boxes
ISSUE-98 Admin Action Classes

Admin action classes are a new way of writing code for admin pages. Previously admin pages were called using a URL like
http://localhost/admin_dir/categories.php and each page was a mixture of procedural php and html.

Zen Cart v1.6 allows you to write code that is  object oriented and separates code from HTML.

It does this by using a similar URL structure to catalog. Instead of accessing code for a 'page' directly, it uses a front controller.
e.g the URL http://localhost/admin_dir/categories.php would be written as http://localhost/admin_dir/index.php?cmd=categories

Two things to note here.

1) You don't need to manually create these links. The admin version of zen_href_link will create them automatically.

2) The controller supports legacy code, such that if an admin action class for categories does not exist it will default back to using admin_dir/categories.php

admin action classes are created in the admin_dir/includes/classes/actions/admin/ directory

The class must extend one of the abstract base admin classes, currently either zcActionAdminBase or zcActionAdminLeadBase

There is some initial documantation at
https://confluence.zen-cart.com/display/PUBDOC/Admin+Action+Classes
ISSUE-97 Consolidate product listing pages into one shared code base

oops, fix bad upgrade sql
fix filter list sql
fix distinct count query
Fix upcoming listing box
fix paginator template
fix date range for products new
ISSUE-98 Admin Action Classes

Fix problem with get forms in admin
fix some legacy stuff that adds .php
Fix zen_draw_form for legacy pages
fix language change in admin
fix split page links
fix auto hidden field, and language redirect
need to allow for accessing admin from  legacy filenames
ISSUE-94 Consolidate currencies class to one file instead of two

Fix test to separate checking
ISSUE-101 Fix sql error when removing all dashboard widgets