support :unless_exist for FileCache
use a queue rather than a list. fixes #12069
Merge pull request #11785 from grosser/grosser/file-unless-exist

support :unless_exist for FileCache

Conflicts:
	activesupport/CHANGELOG.md
	activesupport/test/caching_test.rb
Fixed behavior of `validates_numericality_of` validation `even` and `odd`
options with not true values.

Validation looks like:

    class Booking < ActiveRecord::Base
      validates :guests, numericality: { integer_only: true, even: :even_only?, greater_than: 1 }

      def even_only?; return true or false; end
    end

instead of:

    class Booking < ActiveRecord::Base
      validates :guests, numericality: { integer_only: true, greater_than: 1 }
      validates :guests, numericality: { even: true }, if: :even_only?

      def even_only?; return true or false; end
    end