Constify tv_* functions

* defs.h (tv_nz, tv_cmp, tv_float, tv_add, tv_sub, tv_mul, tv_div): Add
const qualifier to read only arguments.
* util.c (tv_nz, tv_cmp, tv_float, tv_add, tv_sub, tv_mul, tv_div):
Likewise.
Constify count_syscall function

* count.c (count_syscall): Add const qualifier to timeval argument and
rename it.  Store the wall clock time spent while in syscall in separate
timeval variable.
* defs.h (count_syscall): Update prototype.
* syscall.c (trace_syscall_exiting): Update count_syscall invocation.
Optionally produce stats on syscall latency

Time spent in system time is not useful where a syscall depends on some
non-CPU resource, eg. typically open() or stat() to a network drive.

This patch adds a new flag (-w) to produce a summary of the time
difference between beginning and end of the system call (ie. latency)

This functionality has been useful to profile slow processes that
are not CPU-bound.

Signed-off-by: Mark Hills <mark.hills@framestore.com>
tests: add a test for -c and -w options

* tests/count.test: New test.
* tests/Makefile.am (TESTS): Add it.
Decode file descriptors passed via SCM_RIGHTS control messages

* net.c (printcmsghdr): Print descriptors from SCM_RIGHTS control
messages using printfd.
* tests/scm_rights.c: New file.
* tests/scm_rights-fd.test: New test.
* tests/Makefile.am (check_PROGRAMS): Add scm_rights.
(TESTS): Add scm_rights-fd.test.
* tests/.gitignore: Add scm_rights and uio.
Initial README.md
Add basic support for JSON output with option '-j'

* strace.c(init, usage, tprints, tprintf): Add support for parse '-j' option,
Modify tprint* use the hook framework.
* strace.1: Add description for '-j'
* output.c: New file. Provide the output hook framework
* Makefile.am: Add the new file output.c to strace_SOURCES
Modify sys_read()/sys_write() to support JSON output

* io.c(sys_read, sys_write): Use the hook framework to
support JSON output.
Simple test for JSON output

Add some very simple test for JSON output in test directory.