* Add intent component
* Add intent script component
* Add shopping list component
* Convert Snips to use intent component
* Convert Alexa to use intent component
* Lint
* Fix Alexa tests
* Update snips test
* Add intent support to conversation
* Add API to view shopping list contents
* Lint
* Fix demo test
* Lint
* lint
* Remove type from slot schema
* Add dependency to conversation
* Move intent to be a helper
* Fix conversation
* Clean up intent helper
* Fix Alexa
* Snips to use new hass.components
* Allow registering intents with conversation at any point in time
* Shopping list to register sentences
* Add HTTP endpoint to Conversation
* Add async action option to intent_script
* Update API.ai to use intents
* Cleanup Alexa
* Shopping list component to register built-in panel
* Rename shopping list intent to inlude Hass name
Entity may not be picked up exactly by the speech recognition. Instead
of doing an exact string match, look for names which are phonetically
similar and choose the best match above a certain threshold.
This helps as entity names may often be pronoun's (Dave's bedroom) and
this allows for some minor mistakes i.e "the bedroom" will successfully
match against a switch called "bedroom"
It introduces a new library dependency, fuzzywuzzy for comparisons.