Add generic logging support.

I've probably missed numerous cases, but this works for now. It doesn't
gracefully handle "short" arrays/dicts (it could do it on one line) nor
user-defined objects.
Merge branch 'master' of github.com:hazzen/matches