Add support for pattern matching on records

Implemented as pattern matching macro that inspects sub patterns and
generates an extractor that extracts requested fields out of the record.

It only works on 2.10 as it relies on new api that was introduced in 2.11
that lets one to explore subpatterns if macro expands in pattern matching mode.
Add support for tuple subpatterns
Merge pull request #89 from densh/topic/pattern-matching

Add support for pattern matching
Extracting the field type from the signature of the structural type.

Fixes #100 and #101

Review by @gzm0 @hubertp @heathermiller
Merge pull request #103 from vjovanov/issue/100-101

Extracting the field type from the signature of the structural type.
Adds tests for array and collection record field types
Adds Box test suggested by @gzm0
Merge pull request #102 from heathermiller/adds-failing-array-tests

Adds array and collections tests