Merge pull request #15101 from tgxworld/improve_performance_of_building_uri

Form full URI as string to be parsed in Rack::Test.
pg test, remove unused code.
Do not gsub non ASCII characters in header anchor.
pg test, extract network address type tests into separate file.
pg test, move timestamp tests over to `postgresql/timestamp_test.rb`.
pg test, extract tsvector tests into `postgresql/full_text_test.rb`
Use `break` instead of `next` in AD::Journey::Formatter#match_route

The array is sorted in descending order, so there is no point in
iterating further if we met a negative item - all the rest will be
negative too.
Fix the hash key being delete from env

It was changed by mistake at c5d64b2b86aa42f57881091491ee289b3c489c7e.
Merge pull request #15242 from JuanitoFatas/guides-anchor

[Guides] Do not gsub non ASCII characters in header anchor.
Allow additional arguments to be used during type map lookups

Determining things like precision and scale in postgresql will require
the given blocks to take additional arguments besides the OID.

- Adds the ability to handle additional arguments to `TypeMap`
- Passes the column type to blocks when looking up PG types
Use the generic type map for all PG type registrations

We're going to want all of the benefits of the type map object for
registrations, including block registration and real aliasing. Moves
type name registrations to the adapter, and aliases the OIDs to the
named types
Merge pull request #15248 from sgrif/sg-additional-type-map-args

Allow additional arguments to be used during type map lookups
Merge pull request #15249 from sgrif/sg-register-types-in-adapter

Use the generic type map for all PG type registrations
Merge pull request #15247 from DNNX/activesupport-formatter-refactoring

Use `break` instead of `next` in AD::Journey::Formatter#match_route
Remove unnecessary `Hash#to_a` call

Inspired by https://github.com/rails/rails/commit/931ee4186b877856b212b0085cd7bd7f6a4aea67

```ruby

def stat(num)
  start = GC.stat(:total_allocated_object)
  num.times { yield }
  total_obj_count = GC.stat(:total_allocated_object) - start
  puts "#{total_obj_count / num} allocations per call"
end

h = { 'x' => 'y' }

stat(100) { h.     each { |pair| pair } }
stat(100) { h.to_a.each { |pair| pair } }

__END__
1 allocations per call
2 allocations per call
```
Rename `stack` to `queue`

Because it is used as a queue (FIFO), not as a stack (LIFO).

* http://en.wikipedia.org/wiki/Stack_(abstract_data_type)
* http://en.wikipedia.org/wiki/Queue_(data_structure)
Merge pull request #15252 from DNNX/formatter-refactoring-2

Remove unnecessary `Hash#to_a` call
Move `extract_precision` onto type objects
Merge pull request #15239 from croaky/dc-sg-move-extract-precision-to-types

Move `extract_precision` onto type objects
Push scale to type objects

Ideally types will be usable without having to specify a sql type
string, so we should keep the information related to parsing them on the
adapter or another object.