Break the handleTurn function down further by defining clearly named handlers for successful and unsuccessful matches

This allows what happens when a set of tiles is matched or not matched to kept within the handler function - I think this is cleaner and easier to read.
Define flip( tile ) as a method since it is being used in multiple instances
Trigger a custom event on the tile model when a tile is clicked, and have the BoardView listen for that event

This allows for the removal of the 'gameController', simplifying things. Also, the logic to determine whether or not a tile should be listened to is moved from the board view to the tile view