Allow fully-yanked gems to be unyanked by the original owner

This still allows for a new user to swoop in and claim the gem by pushing their own version. Doing so would delete the previous ownership.
Refactor to yank a version directly rather than through its gem
Patch existing find_or_initialize_version_from_spec to make size an optional parameter.
size_in_kilobytes -> number_to_human_size
Change to cleaner syntax.
Add size to versions.
brought Chris's patch up to date and added a script to calculate sizes for existing gems
cleaned up Version#size interface
smoothed out size interfaces in Pusher and Rubygem
Add Badge link to Rubygem pages
Merge branch 'master' of git://github.com/rubygems/rubygems.org
Add test for badge_link helper
Patch YAML to allow only some Gem classes to be unmarshalled
Catch and report YAML exploit errors separately
Revert "Temporarily disable pushing"

This reverts commit 3fe95b2e24171f0325e023e08d5472c3977e7b2b.
Add a test for exploit preventative behaviour
Fixed potential JSON injection by using #to_json.
Always dump Strings, never try quoting them.
Use public_send over send.
YAML's scalar parsing yields numbers sometimes, which are erroneous but should be caught cleanly