cpychecker: add test coverage for Reporter.to_json

Split up check_refcounts(), doing the bulk of the work within a new
impl_check_refcounts(), which generates a Reporter instance holding
the unprocessed reports.

Use this to add test coverage for Reporter.to_json within
 tests/cpychecker/refcounts/json/basic/script.py
converting this test from a test of the JSON for a trace's end-state
into one for the reports found on the code.
Merge pull request #1 from bukzor/master

html/make_html.py works
add LICENSES.txt
docs: add a "Getting Involved" section
docs: add some ideas for using the plugin
docs: add some more ideas to the getting involved section
cpychecker: implement PyIter_Next
cpychecker: avoid hardcoding the maximum number of transitions

Previously, the maximum number of transitions to analyze was hardcoded as 256,
which is good for simple examples, but makes the checker give up on complicated
functions.

With this commit this limit is now exposed as "maxtrans" all the way up the API,
so it can be set by individual test cases.

It is also now exposed as a --maxtrans option to gcc-with-cpychecker
cpychecker: add --maxtrans argument to gcc-with-cpychecker (accidentally omitted from last commit)
gcc-with-cpychecker: add a --dump-json option
Derive gcc name from $CC, not $GCC

Make assumes that CC will be set to the active C compiler, so package
managers automatically set CC accordingly.  Read $CC instead of $GCC to
take advantage of that.
Build: add various pseudo-targets to .PHONY

Listing these targets in .PHONY forces make not to check for a
corresponding file.  This is a slight performance improvement and avoids
unwanted behavior if the build directory ever has a file named 'all',
'clean', etc.
Use $(CURDIR) instead of shell call.

GNU make sets CURDIR to the value of the current directory.  Use that
instead of running a subshell to execute 'pwd'.
Use pattern rules for building generated files.

Most of the generated files follow one of a small number of general
recipes.  Replace the explicit per-file recipes with a pattern rule.
Split CPPFLAGS/CFLAGS/LDFLAGS.

Users may want to set other optimization or debug levels, so split
CFLAGS handling into two parts.  The first part, which will be
overridden by user environment variables, sets the default optimization
and debug level for the project.  The second part then applies values
that should always be used.

Also, move CPPFLAGS and LDFLAGS to their respective variables.
Use $(RM), not explicit "rm -f".

GNU make defines $RM as "rm -f", but using the indirect form allows the
user to override it if needed.
demo: reuse Python CFLAGS variable

Convert demo recipe to use existing $(PYTHON_CFLAGS) instead of calling
python-config again.
Build: rework 'tarball' to remove redundant references to output name
Build: tarball: disallow empty version

An empty version is almost certainly a misspelled invocation.  Disallow
it.
Build: enable out-of-tree build

Add $(srcdir) so that the caller can run "make -f
$PATH_TO_SOURCE/Makefile srcdir=$PATH_TO_SOURCE".  By default, srcdir
will be blank, so this should have no effect on in-tree builds.