Switch left/right collision to new system.

This new system takes a slightly different approach. It separates out
what you want from what you're doing. Now you:
1) Get the tiles you want to look at
2) Perform the check you want with those tiles

Before, there was no distinction between those steps and that was
causing problems.

Next step is to move the top/bottom collision to the new system too,
then to consider refactoring some of this into the Tile class, or some
utility class.