Stop execution chain if a before_callback returns false.

Also changes over to use define_model_callbaks in rails 3 which honors the same behavior and adds 'before', 'around', and 'after' callbacks.

@grosser please take a look and see if all is ok :)