This allows for on_* to be defined by defining the corresponding instance method

directly.  Prior to this fix, doing this will result in "SystemStackError: stack
level too deep".

Example
module RedStorm
  module Examples
    class SplitSentenceBolt < DSL::Bolt
      def on_receive(tuple)
        tuple[0].split(' ').map{|w| [w]}
      end
    end
  end
end
so here ` || :on_receive` is not necessary anymore no?
now looking back at this I find it a bit silly to wrap the method calling in a closure, we should just do an alias_method no? it could look something like this:

```ruby
unless self.method_defined?(:on_receive)
  if block_given?
    define_method(:on_receive, on_receive_block)
  elsif method_name
    alias_method(:on_receive, method_name.to_sym)
  else
    raise(BoltError, "no on_receive handler defined")
  end
end
```

thoughts?