Fix bitset conversion functions

To construct a boost dynamic bit set from a ulong, we need to supply
both the number of bits together with the value.

Update Hex conversion function to construct the bit set directly. Count the number of
bits by counting the number of hex digits following the “0x”, converting the
value to ulong using the HexTo convertor as before.
Make Property recursive
Factor bit set parsing into dedicated grammar

Create new subclass of Qi’s grammar class for parsing string representations
of bit sets (i.e. “0101” or 0xf). Factor out the sub grammar from the PropertyParser
into a grammar exposing a boost dynamic_bitset as an attribute. Move phoenix
conversion function as a private detail of the new BitsetParser class. Use
new grammar object in PropertyParser.