Refactor common feature steps to background
Rename main feature to "sharing"

Also replace tabs with spaces
Rewrap readme, fix spelling, reword
Add test for sharing local files
Add failure robustness tests for peer/server

I'm liking the executable specs, though I feel like
it's missing out on some sort of QuickCheck-like
automatic invariant checking feature as opposed to
static test cases, e.g.

Invariant: My local files are never deleted
  Given my local files
  After downloading and sharing a lot # here there be test generation
  Then my files are still there

Arguably you could just replace 'After' with 'When' and do
all the magic inside your step definition with fuzzing and then
shrinking on failure, but I feel like Gherkin needs actual
new syntax to describe that sort of test as opposed to a behavior.