Introduce Machine.initialize.
Support 'state' attribute in markets.
'dataLoaded' event becomes 'loaded'. Introduce Program.fromUserJSON.