Working on a design doc for pattern matching of datashape function proto

Mainly trying to express clearly what problem we're trying to solve with type variables for the multiple dispatch in blaze.