based on acts_as_follower, enhanced to allow for private_followable objects with pending followers that can be approved.