[FEATURE] Send end event to client when an ASYNCAGI BREAK is executed on Asterisk

Not complete as this is currently a breaking change. Needs the addition of a check for a channel variable to switch on this behaviour.
[CS] Simpler guard logic
Revert "[CS] Simpler guard logic"

This reverts commit f709ab41e053957c327f4b49a748740bea0c2924.
[CS] Remove some duplicate code
[CS] Don't use regex where a string is sufficient
Basic functionality back on new RubyAMI
[BUGFIX] Use ruby_ami from git
[BUGFIX] Execute AMI actions directly on RubyAMI::Stream

Allows for dealing with errors being raised correctly. Also has the nice side effect of requiring fewer actor calls, and should free up a lot of traffic on the translator object.
[CS] Whitespace
[CS] More appropriate parens
[CS] Create RubyAMI objects in one step where possible
[BUGFIX] Calls currently don't expose their AMI clients directly
[BUGFIX] Absorb DTMFRecognizer back into input component actor

* There's no need for it to be a separate actor since it very rarely does any work
* There were race conditions and inappropriate linking such that the input component could die and the recogniser would still be alive, or vice versa
[FEATURE] Execute internal AGI commands without using a component

No longer need the concept of internal components
[BUGFIX] RubyAMI::Stream#send_action, not #send_ami_action
Merge branch 'develop' into feature/new_ruby_ami
[BUGFIX] Handle AsyncAGI Exec events with the correct ID
[UPDATE] Use released version of RubyAMI 2.0
[BUGFIX] Ensure that failed AMI actions appropriately kill output components

Fixes #141
[BUGFIX] Handle MRCPSynth failure correctly

It sets a channel variable to indicate success/failure. To make this fast, we'll cache channel variables locally on the Call object.

Fixes adhearsion/adhearsion#211