Merge pull request #5 from Pazns/pushtotalk

Pazns push-to-talk merge
Resolved tracked issue #8: Unhandled exception if a default audio input device isn't available at initial launch.

Resolved an exception caused when anything other than an XML Profile is loaded.

Incorporated XML file filters into all file IO dialogs to ensure only XML files are presented by default.

Added the ability to direcly load a Profile from within the GAVPI main Form (frmGAVPI.cs) via the File->Open Profile menu item.

Reordered and renamed several menu items in frmProfile.cs.

Implemented the ability to create a new, empty Profile in frmProfile.cs via the File->New menu item.

Implemented the File->Save and File->Save As menu items in frmProfile.cs.

Refactored several methods across the board, predominantly with a view to sanity checking user modifications to a Profile.

Implemented workflow states (reflected in frmGAVPI and frmProfile's status bar) to ensure Profile changes are tracked and acknowledged should the user perform a potentially destructive action.

Ensure only a single instance of the application may functionally execute (by bringing an existing application instance to the fore should a further instance be executed in parallel).
Inconsistent UI state.

Fixed a bug where the "Listen" button in frmGAVPI would be enabled for an edited Profile that is empty of triggers.