[BREAKING CHANGE] If no $overlay is specified, default to this.$element

Using the body as a default is a bad idea. Using the nearest
oo-ui-window-overlay works for isolated windows but not for
non-isolated windows (because this.$element isn't attached
yet in the constructor, but this.$.$iframe is). So instead,
just put dropdowns inline if there is no $overlay.

This fixes the bug where the combo box in the demo has its
menu display below the text due to z-index issues; this is
exactly what made Trevor say that using the body as a
default overlay is a bad idea in the first place.

This does break automatic overlay finding for widgets
inside of isolated windows, though, but that's easily
fixed by passing overlay: this.$overlay.

Bonus: actually pass the right config.$ to the menu in
ComboBoxWidget.

Change-Id: I39df86373ea1ca112eca85bbcb474495eb25b265
Merge "[BREAKING CHANGE] If no $overlay is specified, default to this.$element"