Make community site interaction into a plugin

This makes it possible to release to any combination of upload
destinations, e.g. for someone who's ready to tag a release in GitHub,
but doesn't necessarily want to do a community site upload.