Add a "Dry Run" feature to the Agent form.

User can test if an agent being saved will work as expected simply by clicking the "Dry Run" button, which opens up a modal window that shows dry-run results including log, events and memory.  Resolves #593.

The current implementation only allows dry-run of Agents that do not require an incoming event to be run.

Also, each Agent class must opt in for this feature by declaring themselves as `can_dry_run!`.  To begin with, only WebsiteAgent is marked as dry-runnable for now.
Okay, so I have to work through what this is doing. :)

When `dry_run!` is called, it `prepend`s Sandbox onto our class.  Doesn't that permanently mutate us and pollute future code?