A software engineer's blog post about systemic harassment at Uber triggers an internal reckoning that forces the CEO out.