Huge refactor; battle and team passed in.

The decision was made to create circular references in Pokemon,
Attachment, and Team. While circular references sometimes create
problems (read: maximum stack errors), in this case the advantages
outweigh the disadvantages.

Namely, we will be able to access battle everywhere. This is huge since
Pokemon is such a giant state machine.