Users can un-favorite items from favorites portlet

Add un-favorite functionality to Favorites portlet via EDIT portlet mode.

*Note that this is a pull request for adding un-favoriting functionality to the favorites feature branch, not a pull request against trunk.*

# Known shortcomings, deferred work, and technical debt

* This implementation doesn't align perfectly with the locally-at-UW-developed functionality for favoriting.  Needs merge.
* This implementation hard-codes messages in the Java and JSP layers.  Should instead use message bundles.  TODO's sprinkled inline where this should be done.
* Lacks automated tests for much of the functionality.
* This code and the feature branch being merged into are behind master.  This pull request deliberately does not rebase against latest master, deferring that to cleanup in the favorites feature branch itself.
* While the portlet confirms success of an un-favoriting with a lovely success message, it does not offer the user the opportunity to un-do an inadvertent un-favoriting, but almost certainly should.

# Big picture design

* Favorites is just another view on traditional layout as regards tabs ("collections of favorites).
* Individually favorited items are represented as portlets in folders of `type="favorites"`
* Un-favoriting is removing from layout

* UI for editing favorites is implemented as the actual EDIT mode of the Favorites portlet.
* Un-favoriting clicks are real `ActionRequest`s generated via `<portlet:ActionURL/>`s (not AJAX)

# Edit UI features

![real_edit_favorites](https://f.cloud.github.com/assets/952283/1927309/42c4269a-7e57-11e3-9e23-c515b9785539.png)

* Edit UI reflects whether favorites are delete-able by the user per DLM (lock glyph, only deleteable items appear to be clickable hyperlinks). Help text displayed explaining meaning of lock glyph (only shown if lock glyph is shown).
* Edit UI provides a link to exit EDIT mode (return to VIEW mode).

![lack_permission_to_un-favorite](https://f.cloud.github.com/assets/952283/1927311/4c7f8cb0-7e57-11e3-8c66-838c21e3c47a.png)

* Non-delete-ability of non-delete-able favorites is communicated via tool-tip on hover (click on touchscreens).
* Backing controller filters delete requests for target node being in-layout, user permission to delete, signaling appropriate error messages to UI, and signaling success to UI when node successfully deleted from layout ("un-favorited').
* Edit UI displays error and success messages so signaled (translated to model `errorMessage` and `successMessage` by the edit mode RenderRequest handler).

![successful_un_favorite](https://f.cloud.github.com/assets/952283/1927445/0cfeb8fe-7e5c-11e3-8e38-fb22f5c84e83.png)

# Backing code

* `UserLayoutFolderDescription` now reflects the underlying `folder` `type` attribute rather than being constrained to four hard-coded possible values. This is how `type="favorites"` is visible to the Favorites portlet.

* Copy constructors in `UserLayout*Description` classes now do more of the copying you probably thought they already did. :)  In particular, they now copy DLM attributes.  This is demonstrated by unit tests.
* `UserLayout*Description` classes now have richer `toString()`s to facilitate detailed logging at `trace` level in the Edit controller.