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.
Very interesting.  That's a cool trick.