New microphone widget + activeSession's listener logic in MM.Listener

This is a pull request for 4 things:
1. microphone.js + microphone.css: sample JS/CSS/HTML to be used in sample voice application
2. Moving all the MM.activeSession.listener custom logic into MM.Listener
3. Moving Suvda's code to post interim text entries into both MM.Listener and a new function MM.activeSession.textentries.submitTextEntry
4. A [web component](http://webcomponents.org/), <mindmeld-microphone> that wraps microphone.js. We are not documenting this for the time being

Main src files created/changed:
- microphone widget
 - src/widgets/microphone/microphone.js
 - src/widgets/microphone/volumeMonitor.js
 - src/widgets/mindmeldMicrophone.scss
 - src/widgets/microphone/mindmeldMicrophone.html
- microphone component
 - src/widgets/microphone/component/*
- New listener: src/sdk/main.js

This will have the non-intuitive result that setting them explicitly to null will try to use the complex logic, and fail terribly.