Fixed bug with pruning on short stories
Display votes for top story on user page
Improved standards compliance

Removed another instance of duplicate use of id field.
Removed old test code in word.html
Some style prep for removing upvotes
Implemented has_voted(voter) for word class
Implemented receiving of vote removal
Fixed has_voted(voter)

For some reason caching was breaking this.
I have tried making voters() use direct_voters(), but this seems to
break things too so for now there is some redundant code.
Implemented client end of removing votes

Also fixed bad class tag (my bad).
Disabled word submission/voting if not logged in
Display user score on profile
Improved user score query

Also limited length of best words.
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.
Merge pull request #43 from nhardy/old

Fixed bug with pruning on short stories
Removed unused code.
Rudimentary favicon implementation

Will be reverted.