Bugfix for bitwise AND operator &.

- There were some errors in the parsing and running of the operators which created problems once we had two equal operators only with different associativity.
- Fixing this broke the assign operators, which by error was run on the left operator instead of the right one. This is now fixed, and the result of a=1 is the right operand instead of left, and this calls set_weak() on the left.
- ++ and -- had was removed for floats.
- value_holder class is now smaller with two temporary pointers removed
- Many other functionality broke with this implementation change, all should have been fixed.