process_worklist() only needs to enforce the GC invariant if the object moved.

The comment notes "In moving an object to generation 2"... but the code had
been doing the work for *all* objects in generation 2, not just those moved
there. We know whether we have just moved an object from the nursery to gen2,
so track that, and only walk the recently marked items for a newly moved
object.
In P6opaque's compose(), zero the freshly allocated repr_data->unbox_slots.

Not all the slots are used, but serialize_repr_data() will serialise all of
them, and hence write out garbage to disk. This doesn't cause crashes, because
the unuused slots are never accessed, but it does conceal other problems.
valgrind reports an awful lot of warnings, concealing real problems, and the
generated bytecode files will not be byte-for-byte identical, preventing easy
consistency checking.
Make nqp::can have null check like nqp::findmethod
Bring lookup semantics in line with other backends
.gitignore release tarballs
skeleton parts for call profiling
Clear fd when closing a file handle to prevent "dangling" descriptors

We can run into a situation with MoarVM where a double close can
close an arbitrary, innocent file.  Consider:

  my $fh := nqp::open($filename); # let's say it's FD 3
  # do stuff
  nqp::close($fh);
  my $other_fh := nqp::open($other_filename); # 3 again!
  nqp::close($fh); # closes 3! o_O