Added in-place variable changes (++, -=, etc.)

Also had to rework the whole variable assignment system to use 'bindings' instead of storing variables in the hash table directly. On the plus side this means that variables with no name (which was the vast majority of them) now no longer have 64 bytes of useless baggage attached. This should make it faster (although I haven't tested it tbh.)