added support for data display

The DataTypes.Pointer now includes a "data" member. This means it's
possible for scripts to return variables with complete nested
script-created types.

Creating this feature lead to finding and fixing a few bugs:
- bytes[].ReadData was reading the bytes in the wrong order.
- the popup wasn't closing if the new script result is null
- several methods for the Datatypes.Factory weren't returning their data
to the internal result object.