Fix description of ProductN traits

The method is named `productArity`, not `arity`.
Fix desugared pattern matching code
Value of Unit is (), not {}
Mention object-protected values
Replace Application with App
Reality check for Function/Tuple description

- Fix tyoe variable names/casings
- FunctionN/TupleN types are created up to 22, not 9
- Companion object Function does not have `compose`,
  but a few other methods.
Merge pull request #105 from soc/misc

Miscellaneous fixes to the spec