Remove dead (and broken) sentry panic
Initial tests for web routes
Allow injecting a customer repo into Web
Split out IBRRepo
Refactor web-register to use lib/command
Fix CNAM creation
Handle Null TNDetails

This is based on a hotfix in prod. In this case someone appeared to have
talked to an @jmp.chat address directly. In normal circumstances this
shouldn't happen, but it's not technically disallowed, so we probably
shouldn't just crash.
Make wording more verbose

In case you've been living under a rock and don't know what an eTransfer is.
Fallback should actually happen

This is certainly an accidental holdover from the original code, and was making
voicemail from anon not work at all.
Do not deliver transcription if voicemail is less than 5 seconds

Will suppress bogus messages transcribed from silence or a click, and in
general getting a transciption without getting a recording is just odd.  If we
decided the recording is not worth sending, the transcript certainly isn't.
Return exact matches only

By default bandwidth includes numbers in the "local calling area" of a search.
This is confusing, so change it to include only actual matches.
Form to configure monthly overage limit
Represent plan limit details as a useful object
Use default from Customer constructor
Everything from redis is an int for now
Need to splat the keys back out
Default to 0, even if constructed with nil
Merge branch 'overage-limit'

* overage-limit:
  auto_top_up_amount and monthly_overage_limit from CustomerRepo
  Move Bandwidth Tn remote operations to BandwidthTnRepo
  Use value_semantics to DRY up CustomerRepo
  Use NotFound exception for all customer not found cases