Add follower mode.  Modify interfaces where appropriate to give slightly beter error types
Merge branch 'feature-follower-mode'