create indexes inline in CREATE TABLE for MySQL

This is important, because adding an index on a temporary table after
it has been created would commit the transaction

Conflicts:
	activerecord/CHANGELOG.md
Fixes bugs for using indexes in CREATE TABLE by adding checks for table existence

Also:
  - updates tests by stubbing table_exists? method
  - adds entry for creating indexes in CREATE TABLE to changelog
[ci skip] Fix Pull Request URL in 4.1 release note.
Merge pull request #14487 from JuanitoFatas/patch/fix-release-note-url

[ci skip] Fix Pull Request URL in 4.1 release note.
Merge pull request #14480 from steverice/mysql-indexes-in-create-table

Create indexes inline in CREATE TABLE for MySQL
Invert the conditionals to make easier to read

Also improve some of the code conventions
Remove unneeded comments about feature support on the adapters

These comments will likely be outdated with time and doesn't include
any information that can't be found in the adapters
Improve the method

* cache `o.name` value
* Avoid extra `concat` call
* Avoid extra `<<` call
Make method private
Don't use send when we own the method
No need to gsub the string
No need to use begin/end blocks
Improve CHANGELOG entry
Merge branch 'rm-create-with-index'
Remove unused method

This method is not being called anywhere in our code and a GitHub search
show it is not being used in any project.
Edge Rails applications doesn't need to use arel master
Fix build with bundler 1.6
Add a test case for save(validate:false) with invalid foreign key.

It is supposed to raise ActiveRecord::InvalidForeignKey when the
database has a fk constraint.
Merge pull request #14494 from laurocaetano/test_case_for_fk_with_validate_false

Add a test case for save(validate: false) with invalid foreign key.
only run citext_test if the connection supports_extensions?.

This will keep the test suite passing with older PG installations.