Sets the bit at zero-based bit +offset+ to 1; returns +self+:

  s = "\x00"
  s.bit_set(1) # => "\x02"
  s            # => "\x02"

By default, bits within each byte are numbered from least-significant to
most-significant. If +lsb_first+ is +false+, byte order is unchanged but bits
within each byte are numbered from most-significant to least-significant:

  s = "\x00"
  s.bit_set(1, lsb_first: false) # => "\x40"

Raises +IndexError+ if +offset+ is out of range.
Raises +ArgumentError+ if +offset+ is too large to be represented.
Raises +ArgumentError+ if +lsb_first+ is neither +true+ nor +false+.
