First pass: replace data locations with segments

not all data should be zero-based: right now, I assume that all data
comes from a single byte array, and I give that array to everyone and
their brother. Everyone also stores an offset location of where the data
they're interested in actually is. The Segment pattern should
encapsulate the array and the offset, so users know longer need to know
how pointers work and that it's all one big array.
Added support for map names

wild can access the mapnames to decide what name is associated with each
line of wild data
Added mapname recognition

map names have been found in the 5 versions of the rom. Wild has been
updated to display the map names as labels, which makes it easier to
find the wild data you're looking for.
Pointer error detection

From looking at Victory Fire, it is clear that it is incorrect to assume
there will be no pointer errors. This means that since I can't _prevent_
pointer errors, I should at least be able to _detect_ them. It will help
me understand when my automatic detection (such as strings) is being too
zealous, and it could help developers find pointer errors in their roms.

Moved the startup-error info up a level, so now any loader anywhere can
report errors, not just the scripts. Those errors are now reported into
a readonly textbox instead of a texblock, so it is copy-able. Pointer
errors were added to the system.
Push segment up another level

More code is now segment based, which actually removes a few Array.Copy
routines that were required before - now I just pass in a segment of the
original array instead.
force set battle micro hack script
rebalance microhack

Adding a microhack for rebalancing all pokemon stats. Currently, it sets
all legends to 600, all evolved to 450, all unevolved to 350, a all
non-evolving to 400.