Manual Merge of Several PRs

Merging many PRs that were conflicting.

Heroic work by @akarnokd and @zsxwing on #1060 

All unit tests are passing on my machine. Going to let this bake a while before a release. Other PRs on still on their way ...