Make calls!

- Fetch a phonebook
- Search the phonebook for matches from the user's input
- Connect the user to the first match found
Use the Directory number as outbound CallerID

We would like users to be able to identify when they are receiving a
directory call to help them distinguish it from telemarketers and other
spam (and/or to avoid work calls during off hours). Specifying the
directory number on outbound CallerID means that members of the
directory can add the directory number once and identify all future
calls.

Since we know that the user called the Directory, we can use the 'To'
parameter that Twilio passes us for this purpose. This way, we can avoid
adding configuration to a given server for its Twilio Number.
Disambiguate multiple matches

When there are multiple matches, we ask the user to pick who they want
to connect to.

- Passing state is hard; there is an assumption here that the phonebook
  won't be mutated between generating the menu and parsing the choice.
  This should be fine for our initial use case, where amendments to the
  directory are infrequent.

- Disambiguating between more than 10 choices doesn't work in the
  current implementation, which only accepts one digit of input. We
  should probably do something smarter there.
Fix "require" typo
Read Directory URL from ENV

- We had been explicitly setting the directory to a testing google doc,
  which won't fly.

- Added documentation for configuration.