make libvcd more resilient to different forms of vcd syntax

The vcd files spit out by vcs simulation have some oddities.
This commit makes some changes to the vcd parsing in order to accomadate
them.
give vcddiff the option to raise up module levels in VCD file

When diffing a reference VCD file against a VCD file generated by a
testbench, the signal names might be mismatched because the signals
in the testbench VCD might be one level down.

For instance, if the name in the reference VCD is "module::signal", the
name in the testbench-generated VCD might be
"module_tb::module::signal". This commit allows vcddiff to "hoist" the
signals in either of the VCD files up some number of levels.