First Revision of Builder2

Builder2 is an advancement over Builder. It creates objects that know
the structure of the datatype, but not the value. This means the built
object must lookup the value when requested, which demands the value be
up to date (before it was cached). As an added bonus, this makes it easy
to implement a writer. For a given field (byte/short/int) within a data
type or nested data type, that field can now be written programatically.
Parsed new types + fixed buildable bugs

- Creating an array ended up building a child that was far too large, as
it concatenated all the elements into a single element.
- BuildableArray should have destinationof, just like AutoArray. This
requires it to be public.
- Added ToString() for BuildableArray
- Added ToString() for BuildableObject
fixing auto-save

auto-save was backwards - only saved unchanged files
ui updates

- "open" clears the breadcrumb
- open/reload doesn't cause a blank screen anymore
- script prompt font update
- script prompt gets an "X" button