Allow multiple patterns to be traceable

This reworks the API by adding more options -- passing in tuples and/or
lists of tuples representing the MFAs available in calls/4 and calls/5,
and adding a more generic calls/2.

Internally, the order is reversed on a few calls so that all patterns
are added at once, and then processes enabled, allowing a once-at-a-time
trigger of all submitted patterns.
Allow customizations and options for traces

Options are restricted to calls, and reworded to fit recon's pattern
from basic traces.

The options include:
- pid choice (all, existing, new, Pid)
- timestamp source (in the traces, or added by the formatter)
- args representation (arity or literal args)
- tracing pattern scope (fully qualified calls or local ones also)

Default values will have to be decided.

This patch also includes:
- basic type specs
- fixes to enable arity tracing