Fixed panel add & remove for cases where multiple child panels are added to the same edge of a parent panel

This fix includes a refactoring that brings all logic related to docking panel behaviour into
the AbstractDockingWorkbenchPanelView and AbstractDockingWorkbenchPanelPresenter classes.
Subclasses need not be aware of the docking behaviour, and the tricky docking and undocking
logic is now collected into one place rather than spread across a series of helper classes.

Further, this refactoring sets up a containment hierarchy where docking panels no longer assume
anything about their parent widget, and never try to reparent themselves. These assumptions are
no longer safe now that apps can introduce their own panel types into the mix.
Further improvements to docking/nesting panel behaviour

Adding two panels in one direction and two in the opposite direction then
removing them one at a time now works properly. (see new integration test)
Updated tutorial to use WildFly 8.1
Made the debugging stuff a little easier to read and remember
Fixed panel leak bug in the "remove empty docking panels" code

The bug was causing perspective switching not to work (there is a check for left-over
panels in the perspective switching routine, and it was being tripped)

There are also a few unrelated refactorings in the panel sizing code; this happened
because I forgot to commit the fix before moving on.
Fixed angular activity bootstrapping (onStartup was too early for bind())

Integration test coming soon
Changed layout debug helper so it can still set ID's when GWT module isn't in debug mode
Fixed sizing issue for MultiList panels (they were being explicitly sized unnecessarily)

This commit also fixes a unit test that was being too specific about onResize()
propagating from the panel view to its nested part view. The new test case should
be more resilient to refactorings.
Reduced severity of borders (which are a visual debugging aid)
Added new integration test to ensure MultiList panels are sized properly

This is a regression test for a fix that was committed on Friday.

This commit also introduces a new factory method for DefaultPlaceRequest
that can parse requests in the form PlaceId?param1=val1&param2=val2 ...
This was lifted from the annotation processing logic for @WorkbenchPanel.
It might come in useful for more stuff in the future.
Added clickable navigation to the default perspective. Makes interactive testing sessions easier.
New convenience method for adding parts to panel definitions
Fix for occasional comodification error (if panels rearrange children while def'n is being materialized)
Configuration for Infinitest IDE plugin: don't run the integration tests continuously!!!111!
Fixed drag-and-drop IllegalStateException on drop

The fix itself is a one-liner: PanelManagerImpl's overloaded addPanel() method was calling
setParent() on the new PanelDefinition it created. Parent-child management is now done only
by the parents themselves, as a side effect of addChildPanel().

The rest of the changes are an integration test for Drag-and-drop and minor modifications to
the framework to promote (Selenium) testability.
Fixed drop target bounds for docking panels

The WorkbenchPanelView API now allows panels to designate any Widget as their drop target.
Added host and port to error message when git-ssh daemon won't start
Changed panel nesting behaviour to better match UberFire 0.4
Small changes and corrections to the internal panel management APIs
Removed the (now empty) panel manager modules.

Panel management is now extensible without the need to select alternative panel managers at
build time. The functionality of the old panel management modules has been merged and moved
into uberfire-workbench-client.