Allow DMs to the MXID of a WhatsApp puppet that doesn't yet exist
Fixes #284
This allows starting a new WhatsApp DM by inviting a Matrix user with an ID of @whatsapp_<phoneNumber>:domain (or whatever the puppet user template was configured as), as an alternative to using the pm command.
This feature was already mostly implemented; this PR just fills the holes that were preventing it from working.
Note that this doesn't check if the puppet's phone number is valid, because it can't: appservice user queries don't include which Matrix user (if any) triggered the query, so the bridge can't immediately know which bridge user's WhatsApp client to use to perform checks.
Thus, the phone number check in fnPM (i.e. the call to Client.IsOnWhatsApp) should be copied/moved into either WABridge.createPrivatePortalFromInvite or Puppet.SyncContact, by which point the bridge user is known.