Change file -> configure_file for gui.svg/.glade.

file(COPY ...) copies only when cmake runs (not when make runs);
configure_file recopies if the source changes during make.
Simplified threads, got rid of redraw speed
Added beliefs to ReaderState
Added book->price(): returns price or quiet_NaN

This was being done manually in a few places; added a convenience
wrapper to simply return the price if the book has a market, and
quiet_NaN if it doesn't.
Fixed typos, made noncopyable
Added State storage class.

A State object has ReaderStates and BookStates for all readers and
books in the simulation at the time the State was created.

This commit also adds a new BookState constructor that takes the copies
as a parameter, since State can more efficiently get the number of
copies (during its reader iteration, thus requiring (num
readers)*(average number of books) operations instead of (total num
books)*(num readers) operations by calling .copies() on each and every
book.
Added belief::ProfitStream exception if K=0
GUI overhaul: GUI is now a state history browser.

This major overhaul changes the GUI to be a state history browser,
allowing you to go backward and forward through the simulation states
and separating the actual simulation from the stored States (GUI and
subclasses no longer have any reference to the simulation).

This means you can navigate through time even while the simulation is
busy running.  This also makes things like the max speed setting
pointless because you can just let it run then navigate at your own
speed.

This also solves the problem with the reader/book lists being slow by
making each state period have its own TreeView (each with its own
ReaderStore or BookStore underlying model) that gets swapped in and
out as navigating through states.  This ends up being much, much faster
than replacing the model of an existing TreeView.

Similarly the visualization is now cached so that the drawing operations
(which can be fairly intensive for a simulation with many hundreds of
readers/books) are done only once; the cached image is then used for any
redraws.  The cache is invalidated when the window size changes.

Navigating through simulation time now also updates the information
displayed in reader/book info dialog windows.  The reader dialog now
combines all ProfitStream beliefs into a single window.  The beliefs
were also changed to {1,2,4,8} instead of {1,2,3,4,5,7,10}, partly to
better fit the window, but also because the latter seems a bit
excessive.