Spec up #zinterstore behaviour

Mostly examples taken from the redis-rb sorted spec test/unit file. RSpecs passing with redis-rb v2.2.2, failing with fakeredis.
Spec an empty array of weights to zinterstore

Conflicts:
	spec/sorted_sets_spec.rb
Anonymous class to parse WEIGHTS/AGGREGATE args

Useful in zinterstore/zunionstore methods
Start handling weights/aggregates in #zinterstore

Still got 3 failing specs for WEIGHTS and min/max aggregates specified

Conflicts:
	lib/redis/connection/memory.rb
Nest fakeredis classes under FakeRedis

Makes the class structure match the filesystem

Conflicts:
	lib/fakeredis/zset.rb
Move the sorted set arguments handler to a class

Cleans it up into one place, whilst defining a small API for it as well.

Conflicts:
	lib/redis/connection/memory.rb
Compute the right values for zinterstore

Handles different weighting values, and the different supported aggregate methods.

Conflicts:
	lib/redis/connection/memory.rb
Be 1.8.7-friendly in SortedSetArgumentHandler

Seems Symbol#downcase was introduced in 1.9

Conflicts:
	lib/fakeredis/sorted_set_argument_handler.rb
Spec zscore behaviour with missing keys/values

Conflicts:
	spec/sorted_sets_spec.rb
Return string from zscore, unless value is nil
Add specs for zunionstore command
Adding abstracted implementation for zunionstore

DRYs up the code between zinterstore and zunionstore into a class, with subclasses overriding the logic that changes between the two methods.
Make zinterstore use the abstracted code

Conflicts:
	lib/redis/connection/memory.rb
Add spec for zrange result ordering
Sort by score, then keyname in zrange results

Conflicts:
	lib/redis/connection/memory.rb
Change code to squelch ruby warnings
Squelching ruby warnings in the specs as well

Mostly just s/should ==/should be ==/
Spelling/whitespace/quote fixes in specs
Squelch warning where ivar isn't defined already
Spec shutdown command

Conflicts:
	spec/connection_spec.rb