UP-3941:  Support Massively Multi-Tenant Online Portals (MMOTP) with a Tenant Manager portlet and supporting infrastructure
UP-3941:  Change <ns2:webAppName>/uPortal</ns2:webAppName> to <ns2:isFramework>true</ns2:isFramework>
UP-3941:  Add proper CSS namespacing in JSPs
UP-3941:  Specify a PortalDataKey for each import() method call to prevent group_membership entities from being imported all in one (and failing)
UP-3941:  Adding '@since uPortal 4.1' to javadoc for all new interfaces and APIs
UP-3941:  Document the default for AbstractTenantOperationsListener.failOnError
UP-3941:  Change List<ITenant> to Set<ITenant> at the DAO level;  implement and document a default sort order
UP-3941:  Take the Portlet types out of the package org.jasig.portal.tenants
UP-3941:  Fix mistake in a comment
UP-3941:  afterPropertiesSet() --> @PostConstruct
UP-3941:  Use Validate from commons-lang
UP-3941:  Update log.error message to log entire ITenantOperationsListener object, rather than just its class name
UP-3941:  Refactor responsibility for instantiating a JpaTenant to the JpaTenantDao;  merge create/update methods on the DAO
UP-3941:  Add a comment about JpaPersistenceTenantOperationsListener
UP-3941:  Honor listener.isFailOnError() in deleteTenantByFName
UP-3941:  Define new PortalEvents for tenant-related operations and fire them appropriately
Merge pull request #308 from drewwills/UP-3941_Tanant-Manager

UP-3941:  Support Massively Multi-Tenant Online Portals (MMOTP) with a T...
UP-4062:  Fix 'container' div in detached state that is messing up width;  style the 'return to desktop' header in detached