First attempt at solving #12 and some other fixes

- Setting ConfidenceMargin now rolls off a thread, this is non-ideal because it isn't reflected on the UI.
- Can't just CancelAsyc to make it faster.
- Added some comments and regions
- Changed IsError to a better State based on a new Enum VoiceRecognizerState
- Wrote four new methods to interact with the SpeechRecognitionEngine