Add the weather station experiment script

Apart from the first method call, the generated plan does not contain
the messages sent from and to the actor because the library doesn't
support actor interactions yet. I thought about using the trick of
adding a DbcObject representing the actor, but it convolutes the
experiment, not to mention that the current sender-selection rules
result in silly messages (e.g. actor `acknowledge()` itself).
Add missing association in SimpleWatch experiment

This association, which is missing from the book's class diagram, is
necessary if `time` is to send `refresh()` to display.
Add the Arena experiment script
Use a Hash instead of a Set

I wasn't really using Set-specific methods and, worse, inefficiently
looking up DbcObjects in many places. Since each DbcObject should have a
unique name, using a Hash (indexed by objects' names) instead of a Set
speeds up the lookup for DbcObjects in States.
Implement State equality

The old underlying DbcObject equality method blew up the stack in the
presence of circular references between the DbcObjects (infinite
recursion). Since I'm pressed for time, I had to resort to using a
global variable to fix this problem.
Allow Planner to shuffle its DbcMethods

This feature will be used mainly in the redesigned MeetingsMate
experiment to try the search algorithms on multiple search spaces for a
given number of noise methods.
Redesign the MeetingMate experiment

Now, for a given number of noise methods (0 to 10), effectively 30
search spaces are used to test the selected search algorithm. Also, the
collected data, which is now written to a (CSV) file, includes the
length of the generated plan.