Fixed bug when destroying Select2

When destroying Select2, an error could be raised while destroying
the selection container. This was because the destroy handler was
relying on the container id being present.

The old functionality has been restored where Select2 will destroy
itself when it is initialized again.
Moved the body click handlers out

This should allow us to start working on the body mask handler,
and make future implementations easier to work with.
Move positioning into the components

The main container should not need to position the individual
components. This makes it easier for components to override where
they should be placed, such as adding the dropdown outside of the
container.
Add a module for attaching the dropdown to the body

In Select2 3.x, the dropdown is attached to the body element and
it is floated above all other elements.

In Select2 4.x, the dropdown is attached directly to the Select2
container, which allows us to skip any special placing logic. This
happens to be how Chosen currently does it, and it prevents us
from having the dropdown display up, as well as a few other strange
issues that can't be prevented.

This new module will most likely become the default, as it matches
the functionality of Select2 3.x and has quite a few advantages.
The other positioning code will need to be broken out into a
separate module in the future.
Extracted the original positioning out

With this change, any instances overriding the dropdown is
required to decorate it with the positioning module.
Fixed the default translations

Previously the default translations would break for custom AMD
builds. This fixes it so it does not rely on a hard-coded import
path.