Two HILTI instructions to set marks in bytes objects.

    bytes.append_mark <b>
        Appends an internal mark at the end of the bytes object <b>.
        The mark is fully transparent to other instructions, and will
        keep its location when more data is appended to the object.

    bytes.next_mark <i>
        Move the bytes iterator i forward to the next mark.
Fixup for HILTI's mark instructions.
Support for resynchronizing at marks.

type test2 = unit {
       %synchronize-at = mark;
       [...]
}

Pac-driver gets an option -m to insert marks into input stream
(primarily for testing).
Adding unions to HILTI. WIP.
Merge branch 'topic/robin/refcnt' into topic/robin/unions
Adding unions to HILTI.

Union types can be defined in one of two forms:

    - C-style, with names for fields:

        type A = union {
            int<64> i,
            bool b,
            string test
        }

    - C++-variant-style, with anonymous types:

        type A = union<int<64>, bool, string>

Instructions for the first version:

    union.init A "i" 42  # Instantiate with field set.
    union.get a "i"      # Retrieve field.
    union.is_set "i"     # Test field.

Instructions for the second version:

    union.init A 42        # Instantiate with type set.
    union.get a            # Get field, target determines type
    union.is_set a int<64> # Test type.

TODO: The unit.init constructor syntax is pretty ugly, need something
nicer.

Once can also dispatch based on the current type, similar to how
switch works:

   local union<int<64>, bool, string> u
   [...]
   dispatch u @default ( (int<64>, @b1), (bool, @b2) )

   @b1:
     [...]

   @b2:
     [...]

   @default:
     [...]

Unions also coerce to booleans, yielding true if a value is set.
Fixing regression.
CMake tweaks for Bro plugin.
Fix for Bro plugin.

Needed after recent change to plugins in Bro master.
Fix for some sink operations not flagging requiring safe points.

Also baseline updates.