Cleaned up into draft of release candidate

This is now a cleaned up version of what we discussed generally agreed
upon during our Feb 26-27 meeting.  However, because this was fleshed
out quickly, different features will be introduced more carefully via
separate branches.