fix(dialog): ability to stack dialogs

Before now, it was possible to trigger a dialog from within a dialog, but the behavior of the backgrounds and escape key was flawed (backgrounds would remain behind 'parent' dialogs, clicking the background would close the parent, escape would leave a background div masking all inputs).

This corrects these bugs while otherwise maintaining the $dialog behavior.  The primary difference in functionality, is now a new background element will be created for each dialog (rather than maintaining a single background element).  My reasoning for this decision is that this behavior is most consistent with the dialog-specific options currently available (e.g. a 'parent' dialog may have a background, but the child might not need it, or escape behavior might vary by dialog).

Please let me know if you have any questions or would like me to make any changes.