adding a weird test case

Conflicts:
	activerecord/test/cases/base_test.rb
eagerly initialize the attributes module to avoid check-then-set race conditions
initialize ivars so we don't have to constantly check them
push attribute constant cache in to the attribute methods module
initialize generated modules on inclusion and on inheritence
eagerly assign the attribute name cache, remove const_missing
making the comment more accurate
freeze the constant value so it isn't duped when used as a hash key

Conflicts:
	activerecord/lib/active_record/attribute_methods.rb