use consistent variable name for dialog
provide more overridable defaults
always fallback to btn-default if no class supplied
rework buttons to always be considered objects rather than arrays