New membership

This was a merge between membership reboot and our existing code base.  Required a lot of changes.  You will need to wipe your existing database and regenerate based off of this.  Otherwise you will have problems.