Don't modify the columns hash to set defaults from the attributes API

Nothing is directly using the columns for the default values anymore.
This step helps us get closer not not mutating the columns hash.
Don't attempt to load the schema file in tests if none exists
added punctuations, and role of queue_adapter module [ci skip]
Remove redundant substitute index when constructing bind values

We end up re-ordering them either way when we construct the Arel AST (in order
to deal with rewhere, etc), so we shouldn't bother giving it a number in the
first place beforehand.
Added region sequencing of primary keys for Postgres.

Skip setting sequence on a table create if the value is 0 since it will start the first value at 1 anyway.
This fixes the PG error 'setval: value 0 is out of bounds for sequence vms_id_seq...' encountered when migrating a new DB.

BugzID: 15452,9772,13475,16850
fix set_pk_sequence and add a test for it.
remove unused and untested API
Fix break on generated html

fixes this :

![http://i.imgur.com/86scI3a.png](http://i.imgur.com/86scI3a.png))
Merge pull request #17470 from keikun17/master

[ci skip] Fix line break on asset pipeline guide
placed description at correct place [ci skip]
add missing space.[ci skip]
Merge pull request #17474 from kuldeepaggarwal/fix-indentaion

add missing space.[ci skip]
Tiny documentation fixes and styling improvements

[ci skip]
Remove redundant require of file

This file was required inside 'test/validators/namespace/email_validator.rb'
that's already required here. Therefore I removed the redundant required.
Don't needlessly alphabetize columns for insert/update

This slightly simplifies the code, and reduces the number of times we
need to iterate over the attributes by one.
Merge pull request #17477 from Adam89/ma-remove-redundant-require

Remove redundant require of file
Merge pull request #17463 from mrgilman/remove-index-from-substitute-at

Remove redundant substitute index when constructing bind values
Use bind values for joined tables in where statements

In practical terms, this allows serialized columns and tz aware columns
to be used in wheres that go through joins, where they previously would
not behave correctly. Internally, this removes 1/3 of the cases where we
rely on Arel to perform type casting for us.

There were two non-obvious changes required for this. `update_all` on
relation was merging its bind values with arel's in the wrong order.
Additionally, through associations were assuming there would be no bind
parameters in the preloader (presumably because the where would always
be part of a join)

[Melanie Gilman & Sean Griffin]
Fix test which failed in isolation

It was transitively relying on the vertex model being loaded
[ci skip] `Relation#bind` is not public API