Performance Improvements

- Added the AutoTimer and app.performance script command for performance
testing.
- Used the AutoTimer to profile startup performance bottlenecks.
- Updated PCS.FindStrings() to increase performance.
Performance Improvements

Added a concept of a "general layout" when a script is hunting for a
data-type. This allows the Types objects to filter through pointers much
faster, easily discounting ones that don't match the general layout.
This pre-script step massively improves performance, though it does make
the scripts a bit more complicated.
Cleanup
Performance Improvements

Having pointers stored in an hashed dictionary instead of a sorted set
greatly improves the pointer load time. The only addition to deal with
this is to sort the keys once they're extracted, which can be done
fairly quickly.