Allow null ID when creating a connector

We need to allow a null ID when creating connectors because when
we're authorizing for the first time we will not have an ID yet.
Correctly get the ID from a profile if we still don't have one
Correctly get the ID from a Twitter profile if we still don't have one