Match and MatchObject changes.

- Ensure Match() sets numerical id even if given a
  string (can easily happen when match ids are
  used as keys).
- Change MatchObject's winnerNext, loserNext
  properties to winner_next, loser_next, for
  compatibility with API.
Change means of getting final.

- Now traverses winner bracket tree.
- Old solution wouldn't work with double
  elimination and a secondary final, (in which
  case the secondary final is another match's
  loser_next, and so gets excluded).