Case sensitive validate_uniqueness_of validation

Hi all,

After some days of feedback and working with lifo, the patch for fixing case sensitivity in validate_uniqueness_of as get a lot better. I sent an email to the list, before but the patch has gone through some refactoring and new review may be needed.

The initial problem was the bug that :case_sensitive => true, wasn't working at all, and this *was* the default. People may already be using this functionality and having wrong results.

Since MySQL/Postgresql aren't case sensitive (sqlite is) the only way to achieve this is doing a ruby comparison, so instead doing a "find(:first)" this version does a select_all (with construct_finder_sql), so that in case ruby case sensitive comparison is required, the comparison is done with a hash and not objects.

The default was also changed from true to false, "Because, people must have built their apps thinking case sensitivity is off ( as it didn't work before )" as Pratik said.

Ticket: http://dev.rubyonrails.org/ticket/11366

Cheers