constrained copying to supported items

This provides better contextual hinting to the user as it prevents them
from trying to copy unsupported content such as files (by not making
them draggable). It also fixes an issue where highlighted items were
not cleared from previous tools (e.g. inspect content).
added type icons to content list

Better visual clues about what the content type is.
addressing jshint issues
first phase in migration to AMD with require.js
second phase in migration to AMD with require.js

Migrated `portal.js` into two AMD modules `portal.js` and util.js with
appropriate dependencies. Updated `app.js` to leverage these AMD
modules and also made much better use of `.done` for all ajax calls.
Also improved some error handling to give better messages to users.
changed visual cues when copying content

Users were confused by the copy behavior because on the screen it moved
the item from the source to the destination. New behavior clones the
original and creates a new list item in the destination.
trying to fix bad url notifications

In the destination portal field, the evaluation was firing before the
`URL` had been cleaned up (e.g. adding a trailing slash). Now it waits
for the `URL` to get cleaned up before sending it.
updated to use mustache via AMD
fixed copying of Web Mapping Applications

Registered URLs such as Web Mapping Applications and Map Services
(non-hosted) don’t usually have a data component and as such the data
request fails. Using `.always` ensure the item description is still
copied.
removed unnecessary require.js shims
cleaned up main.js
updated the about section