Move mysql2 test for when adapter will be loaded

When run with only the Mysql adapter, we get this failure: https://travis-ci.org/rails/rails/jobs/15937907#L2416

Porting the test over to only run when mysql2 is loaded
Added Backslashes to ActiveModel::AttributeMethods to prevent unwanted links in the rdoc + some other doc fixes.[ci skip]
Test with 2.1.0
Merge pull request #13478 from schneems/schneems/fix-mysql

Move mysql2 test for when adapter will be loaded
Avoid getting redefined method warning

Warning:

  ~/projects/rails/activerecord/lib/active_record/railtie.rb:140: warning: method redefined; discarding old extend_message
  ~/projects/rails/activerecord/lib/active_record/errors.rb:104: warning: previous definition of extend_message was here
Cast env to symbol, fixes deprecation warning

Warning:

  DEPRECATION WARNING: Passing a string to ActiveRecord::Base.establish_connection for a configuration lookup is deprecated, please pass a symbol (:development) instead.
Merge pull request #13488 from strzalek/fix-railties-warnings

Fix railties warnings
Fix tests names: tokens.yml => secrets.yml
Partial fix of database url tests

Prior to #13463 when `DATABASE_URL` was set, Rails automagically used that value instead of the database.yml. There are tests in dbs_test that expect this to still be true. After that PR, `RAILS_DATABASE_URL` is expected to be read into the YAML file via ERB, this PR fixes that behavior.

Note: this does not entirely fix the tests. It seems that `ActiveRecord::Tasks::DatabaseTasks.current_config` does not process the url string correctly (convert it into a hash), and ` ActiveRecord::Tasks::DatabaseTasks.structure_load(current_config, filename)` as well as other methods in `DatabaseTasks` expect a hash.

It seems like we should involve the resolver somewhere in this process to correctly convert the database url, I do not know the best place for that /cc @josevalim
ensure environment is run before db:structure:load

Right now `db:drop` depends on `load_config` since so when `db:drop` gets executed `load_config` gets run. `db:structure:load` depends on `[:environment, :load_config]`. So before it runs, it executes `environment` but because `load_config` has already executed it is skipped. Note `db:load_config` is "invoke"-d twice, but only "execute"-d once:

```
** Invoke db:drop (first_time)
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:drop
** Invoke db:structure:load (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config
** Execute db:structure:load
```

The fix for this is making sure that the environment is run before any `load_config`:

```
** Invoke environment (first_time)
** Execute environment
** Invoke db:drop (first_time)
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:drop
** Invoke db:structure:load (first_time)
** Invoke environment
** Invoke db:load_config
** Execute db:structure:load
```
fix 2.1.0 bug :(
Fix failure introduced from #13488
Merge pull request #13485 from schneems/schneems/fix-more-railties-tests

Partial fix of database url tests
Merge pull request #13442 from aditya-kapoor/update-docs

Updated documentation for Attribute Methods [ci skip]
Improve font of some code in API documentation [ci skip]

* Add "<tt>" or "+" to improve font of some code and filenames in API documentation
* Does not contain wording changes
Merge pull request #13493 from Domon/improve-some-code-font-in-api-doc

Improve font of some code in API documentation [ci skip]
Use String#scrub when available to tidy bytes
Fixed typo [CI skip]
Merge pull request #13498 from dmitrydims/master

Fixed typo in Rails 4.1 Release Notes [CI skip]
Merge pull request #13495 from norman/tidy_bytes

Use String#scrub when available to tidy bytes