Feature: Custom Delegates

This adds support for end-developer defined delegates types. For example:

```c#
[DelegateUsage(DelegateUsage.Act)]
public delegate void When();
/// ...
When the_user_does_something_stupid = () => user.StupidAction();
```

The usages have a required method signature:

- At the very minimum, no parameters.
- Behaviors need a single generic argument.

In addition because there are these non-standard delegates, the output from the console runner has been changed to reflect the new `Leader` field. `Leader` contains a pretty-formatted version of the field type (e.g. `Behaves_like<Monkey>` yields "behaves like"). None of the other runners have been updated.