Adding ability to compute change-based diffs.

Now our tool has three different operating models: puppet versions,
change diffs or puppet versions on a change.
I refactored most of the code adding threads so that puppet
catalogs are compiled in parallel (for added speed). Also, I introduced
a nice parser of site.pp that simply selects the most relevant nodes to
compile (one per node declaration block in site.pp) so that we have
coverage in our tests.

I added some notes to the README, so that this tool can actually be
useful to someone else than me.

Change-Id: I6a248f422c20c71e82a18202e8cda0adc1688e07
Signed-off-by: Giuseppe Lavagetto <glavagetto@wikimedia.org>