Add support for additional #if/#elif operators

Add support for additional operators in a #if/#elif statement.
  - unary bitwise NOT (one's complement): ~
  - unary negative: -
  - left shift: <<
  - right shift: >>
  - bitwise AND: &
  - bitwise exclusive OR: ^
  - bitwise inclusive OR: |
  - addition: +
  - subtraction: -
  - multiplcation: *
  - division: /
  - modulo: %