Refactor EventTableViewCell

Change delegate method names.
Ensure delegate can respond to method before calling.
Add metaprogramming example.