Allow AlertDialog.Builder customization before its AlertDialog is shown.

This change allows an AlertDialog.Builder to be futher modified before it is shown to the user (e.g. an Icon may be set). A custom implementation of UserInteraction need just override OnShowDialog, modify the Builder and call base.OnShowDialog.