add convenience methods for checking migrations

if a rails project needs to be migrated ActiveRecord::Migrator.needs_migration? will be true or false if the current version matches the last version. 
Compact array of values added to PermissionSet instance
Merge pull request #6668 from pomnikita/master

Compact array of values added to PermissionSet instance
Fix tests, active_authorizer shouldn't include blank values

Fix for a test failing after: 00ff0a6776
Merge pull request #6687 from tiegz/3-2-optimizations

ActiveRecord#attributes optimization: minimize objects created
Use each_with_object instead of each here
Remove conditional committed by accident
raise error for pending migration 

can be configured by setting config.active_record.migration. Setting to :page_load will raise an error on each page refresh if there are migrations that are pending. Setting to :page_load is defaulted in development for new applications. 
test errors for pending migrations

App should raise error on page_load
add prompt to 404 & 500 pages to check logs

When new programmers push their code to a production server and receive an error they often don't know to check the logs, this simple reminder will help. Most professional applications have custom error pages so this change shouldn't affect them. The wording of the message should not confuse non-developer visitors.
Fix fragile #assert_queries implementation and usages.

Several tests that passed when run in the order they are loaded
by rake test were failing when run in different sequences due to
problems with the implementation of assert_queries and
assert_no_queries as well as incorrect assumptions made about
how many queries might be executed by a database adapter in
various cases.
removes the obsolete require_association method from dependencies

This is an obsolete method from the very early days,
apparently it was used circa 2004 because STI support
was not smart enough. This method is not public
interface, and we are heading a major version, so
removal seems right.
Merge pull request #6683 from stevecj/fix-fragile-assert-queries

Fix fragile #assert_queries implementation and usages.
Merge pull request #6665 from schneems/schneems/raise-migration-error

Notify A User they Have Pending Migrations 
Use . instead of :: for class methods, add CHANGELOG entries
Merge pull request #6692 from schneems/schneems/something-went-wrong

Add Prompt to 404 & 500 Pages to Check Logs in Production
Build fix broken here 03f2249153ae4d2078646e6796d8b9e5ef747fba
Merge pull request #6694 from arunagw/build_fix_master

Build fix broken here 03f2249153ae4d2078646e6796d8b9e5ef747fba
Fix #6635. We should call Scoping methods, before calling Array methods.
Ensure that mass assignment options are preserved

There are two possible scenarios where the @mass_assignment_options
instance variable can become corrupted:

1. If the assign_attributes doesn't complete correctly, then
   subsequent calls to a nested attribute assignment method will use
   whatever options were passed to the previous assign_attributes call.

2. With nested assign_attributes calls, the inner call will overwrite
   the current options. This will only affect nested attributes as the
   attribute hash is sanitized before any methods are called.

To fix this we save the current options in a local variable and then
restore these options in an ensure block.