Trac 28709

Implements 2 todos in customize-controls.js : 413
In wp.customize.Panel.toggleExpanded(), the sibling sections and panels must be collapsed before the panel is expanded.
This pull request uses hasExpandedElement() to check that the siblings are collapsed. If they are not, it sets a 250 millisecond timeout before executing expandPanel().

Amends #29.
@kienstra @celloexpressions if we were to allow `Section.collapse()` to take arguments such as speed, we should do something for this for `Section.expand()` because when dragging a widget from one section to another we need to be able to allow multiple sections to be expanded at once.

So to support:

```js
section.collapse( { duration: 0 } );
section.expand( { duration: 150, allowMultiple: true } );
```

What this would involve is these methods pushing the arguments onto a queue, and then set the `section.expanded` state. The bound handler for changes to `section.expanded` would then shift the first arguments object off of the queue and pass them into `toggleExpanded` (which should be renamed `onToggleExpanded` or `onChangeExpanded`) as the second argument. Then the `toggleExpanded`'s behavior can be customized based on these arguments.

It's a but of a round-about way of passing arguments into the change handler, but it allows us to continue using `wp.customize.Value` to represent the `expanded` state with a simple boolean.

Thoughts?