Explicitly exit with status "1" for create and drop failures

* A non-zero exit status allows subsequent shell commands to be chained
  together such as: `rake db:reset test:prepare && rspec && cap deploy`
  (if you're feeling brave :)
* Any exceptions raised during the `create` and `drop` tasks are caught
  in order to print a "pretty" message to the user. Unfortunately doing
  so prevents rake from aborting with a non-zero exit status to the shell.
* Therefore we re-raise the exceptions after the "pretty" message and
  re-catch them in the task.
* From the task we explicitly exit with a non-zero status. This method
  was chosen (rather than just letting rake fail from the exception) so
  that the backtrace is suppressed and the output to stderr is
  unchanged.
* Includes juke to preserve the behavior of db:setup. Previously
  db:setup would attempt to create the database and then proceed to
  reload the schema regardless of the success of said creation. This
  ensures that db:setup continues to behave this way.
* `active_record/tasks/database_tasks` must be explicitly required in
  specs referencing `DatabaseAlreadyExists` error to prevent race
  condition from autoloading
* Update activerecord CHANGELOG