Added new ShowDialog overload

This allows more flexibility for components that need to perform actions
(or not) based on the result of the dialog call.

Also replaced the textbuffer cache lookup (using RunningDocumentTable)
with a simple filename-to-ITextBuffer map, since the RDT lookup
occasionally took a very long time...don't want to deal with that.