Modified the Keyword Model to Auto Capitalize Name

I added a before validation callback to the Keyword model to
automatically capitalize its name. I also added the appropriate tests.
To keep the shoulda matchers passing, I had to change the uniqueness
validation on the keyword name to be case insensitive, but this should
make the system more protected against false keyword entries.