Various messaging enhancements to improve behavior in-container.

Including:

* we no longer have to mark destinations as destroyable - an app will
  only be able to destroy a destination it created. `.stop` will
  return false if it was unable to destroy.

* `.stop` will now close any listeners the current app created on the
  destination, regardless of whether it has rights to destroy it or
  not.

* destinations now use jndi names that match the standard ones used by
  WF.

* looking up a destination via jndi in WF now uses a retry loop for
  the case where the lookup occurs before the destination is fully
  deployed. This is gross.