Revert "Use strftime to convert DateTime to numeric"

There appears to be a bug with DateTime#strftime("%s") on 32-bit platforms.
Bug report: http://bugs.ruby-lang.org/issues/6683

This reverts commit 210cd756a628cc19c0d6e44bee8c33dfb2d9d598.
Use strings for the table names

connection.tables returns an array of strings
Fix failing test related to persist glob when replacing a path

Introduced in pull request #6910, merged in 2ee3fa1a48513a2c42833e2e1f60fe03769bc295
Improve performance of DateTime#seconds_since_unix_epoch

Calculate the seconds since the UNIX epoch using the difference in
Julian day numbers from the epoch date. By reducing the Rational math
to just the offset component this gives a significant improvement.

Benchmark:

Calculating --------------------------------------------
       new     27733 i/100ms
   current     15031 i/100ms
       new     27737 i/100ms
   current     15549 i/100ms
--------------------------------------------------------
       new   548182.1 (±0.9%) i/s - 2745567 in 5.008943s
   current   216380.9 (±1.6%) i/s - 1082232 in 5.002781s
       new   510281.9 (±1.2%) i/s - 2551804 in 5.001525s
   current   219858.3 (±1.8%) i/s - 1103979 in 5.023039s
Made file name and class name consistant
Merge pull request #6919 from rahul100885/master

Make file name and class name consistant

Related to dbc43bcce69aa4aaf0ae309bf410e2b786c4e3f6
push response creation down since third param is never used.
explains why the file update checker ignores mtimes in the future, plus a little refactor for the same price
Update 4.0 Release Notes with changelogs [ci skip]

Also fix some wrong formatting.

Related discussion:
https://github.com/rails/rails/commit/ab72040b74f742b6676b2d2a5dd029bfdca25a7a#commitcomment-1525256
Don't mark the store as changed if an attribute isn't changed.
Merge pull request #6934 from kennyj/fix_store

Don't mark the store as changed if an attribute isn't changed.
observer update refactoring
Track queue threading with named classes

Using an anonymous class prevented marshalling: we're not doing that yet, but
the next commit will introduce this. This also provided an opportunity to
improve the expressivity of the tests and to make the assertion failure
messages clearer.
Ensure test jobs are marshallable

By marshalling and unmarshalling jobs when adding them to the test queue, we
can ensure that jobs created during test runs are valid candidates for
marshalling, and, thus, that they can be used with queueing backends other than
the default simple in-process implementation.

This will also be used in a subsequent commit to ensure that jobs pushed to the
queue do not contain a reference to the queue itself.
Ensure jobs do not refer to the queue

Jobs pushed to the queue should not contain a reference to it. As the queue
itself cannot be marshalled, and as a consequence of checking the
marshallability of all jobs in the test environment, we can now guarantee this
to be the case in the test environment when using the default TestQueue
implementation.
Merge pull request #6940 from acapilleri/observer_update

Observer #update refactoring
Make TestQueueTest work with marshalling queue

This requires all jobs to be instances of named classes, without block
implementations of methods.
Merge pull request #6946 from threedaymonk/queue-refs

Ensure that queued jobs are marshallable
Add references schema statements

Examples:

    add_reference :products, :supplier, polymorphic: true, index: true
    remove_reference :products, :user

`add_belongs_to` and `remove_belongs_to` are
acceptable.
Make references statements reversible