Add a long overdue isNew() method and use it.
CS
New awesome AdminObjectEdit that handles a lot of the chore code on edit pages.
add stubs for addToSearchQueue() and addSavedMessage()
add validateShortnammethod that compares dataobject ids.
return the object from updateObject() for easier subclass behaviour

We often want a reference to the object when the subclass continues updateObject().
respect parent::validate()

A little unnecessary in that it doesn't do anything now. But better to respect the hierarchy.
if new, and shortname and title widgets exist, and shortname is empty, automagically generate a new shortname.

This is the behaviour we want 99% of the time.
Clenanup addressing @charleswaddell's feedback.

 * Check SwatDateEntry values against their object type instead of null.
 * simplify assignUiValues() and assignValuesToUi() internals.
These methods shouldn't be public.
make sure the object has a loadByShortname before using it
comment cleanup
rename flushObjectOnSave() to addObjectToFlushOnSave()

It was confusingly close to flushObjectsOnSave() - the method that actually flushes all the objects
Make sure createdate is a date property before treating it as one.
Load the ui in init()

This requires skipping all the AdminPage inits.
Add a loadObjectData method to mirroupdateObject() and postSaveObject()
add getResolvedObjectClass()

This returns the result of SwatDBClassMap::get() on the class set in getObjectClass() by default, which is what we want most of the time.

For cases where we can't depend on the SwatDBClassMap inheritance mapping, for example where there are multiple subclasses of the same parent object, this method can be subclassed to return the object you actually want.
For consistency with other commonly subclassed methods, rename loadObjectData() to loadObject()
Merge pull request #11 from isaacgrant/admin-object-edit

Admin Edit class improvements
Bump the Swat required.

This is needed for the new AdminObjectEdit page.