Large update, see README.md for details

Large change set, apologies for not doing this incrementally, will do so in the future.  Detailed changes listed in README.md.