Initial setup of the Promo package.
 * PEAR strture
 * Dataobjects
 * Sql
 * Basic admin
Just require the promotion dataobject at the top of the Application.

This is always going to be required by initModules() so no point trying to control when it's required.
Kill PACKAGE_ID

PACKAGE_ID is no longer used in SiteLayout, and is old cruft not needed in a new package.
cleanup comparisions to use instanceof and compare against ''
CS
more comparision cleanup
promotion total is a float, so don't use a strict comparision.
remove dead code.
Clean up the promotion code pager.

Moving it outside the SwatFrom allows it to be automagically processed.
Just return the PromoPromotionCodeWrapper - less code, same tasty goodness
Remove html from translatable strings.
newline cleanup
Merge pull request #6 from isaacgrant/initial-package

Initial setup of the Promo package.
Load search fields from xml instead of building widgets in PHP.

Test case of how we could structure the methods for easier subclassing. I may move the addAdditionalSearchFields() and getAdditionalSearchFieldsUiXml() methods upstream to Store.
Update admin editors to use new AdminObjectEdit page.
Take advantage of new saved message features in AdminObjectEdit.

Requires https://github.com/silverorange/admin/pull/16
Fix folding.
Only add the promotion to the navbar when it's not a new promotion.
Simplify navbar building.
Use newest set of AdminObjectEdit features.

getSavedMessagePrimaryContent() and getObjectPropertyWidgetMapping(). See https://github.com/silverorange/admin/pull/16 and https://github.com/silverorange/admin/pull/18