Changes to keyByAvroField prompted by discussion on issue #5

- Rename SPCollections to AvroCollections, to contain methods for dealing specifically with collections of Avro records
- String-default version of keyByAvroField, as it's main intent is to simplify joining anyway toStringing keys before joining is not a problem
- Now supports nullable fields and nested records (via . separated paths)
Extraction functions for constructing new PCollections and PTables from Avro collection

Extract field behaviour to simplify and remove the need for "trivial" MapFns when
dealing with Avro SpecificRecords. We sacrifice some type safety by doing things in
this way, but because of the trivial nature of such "extraction" MapFns, it's
probably an OK tradeoff.
Add missing license header to MapFns and AvroCollections
Adapt README for AvroCollections additions
Fix PR review comments from @Tarrasch
Merge pull request #6 from spotify/avro-generic

Tools for dealing with Avro SpecificRecord collections using field names