This is a different, more in depth version of the talk originally given on March 31, 2016. This talk was given at Abstractions in Pittsburgh.