Implemented duplicate word detection and handling
Fixed DuplicateWordException
Added storyID to votes table

Prepares for changing primary key for words to (storyID,wordID);
- Updated create_database.sql
- Changed hash_passwords.py to update_schema.py
- Added schema change code for database structure change
- Modified word.py, story.py and user.py to reflect changes
Added fix_duplicates.py

This file when run once will merge duplicate words once. If child words
contain duplicates, this will need to be run again.
Improved Standards Compliance

All pages pass HTML5 test now.
Removed unused code.
Rudimentary favicon implementation

Will be reverted.
Revert "Rudimentary favicon implementation"

This reverts commit 5739a48673016cb5a5277b99c238f4de4481428b.
Merge remote-tracking branch 'origin/voting-changes'
Changed cheaty scope thing to more pythonic way
Split statements for checking for duplicate words

As per my interpretation of @plausibility's suggestion
Implemented debug info for DuplicateWordException

Message is subject to change format, but I predict the inputs will
remain the same.
Changed in-document charset declaration

As per @Mause's reccommendation.
Changed error message for duplicate word
Super
Merge pull request #46 from nhardy/master

Misc Improvements