KAZOO-3116 initial

Callback feature
Why initialize to an empty string versus letting `undefined` be your guide? The empty string isn't a useful value to have here, and `undefined` could let you alert the user that they haven't properly configured cccp yet! Something like:

```erlang
validate_sysconfig() ->
    validate_sysconfig(<<"cccp_cb_number">>),
    validate_sysconfig(<<"cccp_cc_number">>).

validate_sysconfig(Key) ->
    case whapps_config:get(?CCCP_CONFIG_CAT, Key) of
        'undefined' -> lager:warning("cccp hasn't been configured with ~s in system_config/~s; this is necessary", [Key, ?CCCP_CONFIG_CAT]);
        Value -> lager:debug("cccp using ~s for ~s", [wnm_util:normalize_number(Value), Key])
end.
```
You could also include log lines in the `undefined` case for what SUP command to run to set the appropriate value.