Added linear restrictions & monte carlo sampling
Increased clang's inline threshold

Clang-compiled code was substantially slower at some random number
generations because of its (default) lower inline threshold.  Increased
it.
Actually call setup() when setup is ready

Otherwise the "on_run" was failing because creativity->setup() hadn't
been called, but was attempting to access creativity->sim.  This moves
to setup() call to the same place as the setup boolean state variable.
Fixed some struct initialization issues
Move shared_ptr instead of copying
Added info on # of draws/draw failures
Cache quality predictions

Without this, reader->quality(b) was potentially expensive when called
for unowned books: it might require a Monte Carlo simulation via the
quality belief.
Put GUI colours in a struct instead of hard-coding

This also differentiates the author<->book lines to be fainter for
off-market books (25% opacity instead of 50% opacity).