added Source.can_create() to check for known unsupported types

- allows us to give intelligent errors when the user tries to publish
  something to a silo that just doesn't support it (e.g. Twitter and RSVPs)
- Source.preview_create() should raise the new type
  CannotPublishTypeError to indicate a known unpublishable type
i wonder about this logic. it works for now, but it probably doesn't do what we want for `h-entry`s with more than one type, e.g. a post that has both an rsvp and a reply in it. those are rare (nonexistent?) now though, so maybe we just note it in the docstring and move on?