KAZOO-2560: Camp-on feature

fixed pill request's issue, rebased to master

James, we've thought about your response about sending messages through AMQP and about pivot example. We think we see more generic approach here for calling apps from callflows.
We've added wapi_cf_delegate.erl for this. It resolves dependecies problem for callflow and apps. Please check if it suites well.
I don't think its good practice to use EUnit macros in non-test code. Why not `'undefined' =/= App` to assert this? Even better, call an arity-3 version of bind_q with one function header that matches App as a binary:

```
bind_q(Q, Props, <<_/binary>> = App) ->
  Key = props:get(),
  bind_q_to_whapps(...).
```
This will crash if App is undefined and achieve the same thing.