Add an opt-in fixer for open() -> io.open()

Also introduces the entire concept of opt-in fixers.

Closes #42
Fair enough. And I don't think it's worth just defining an order using lists - if this kind of thing crops up more often, we should build a way of declaring dependencies among fixes.

For now, idempotence means you can just run it again if the fixes didn't happen in the order you wanted.