Use new syntax for class creation.

    A = subclass Base AnotherBase metaclass: AMeta where
      attribute = 100500
      method = (self something) -> do something
      ...

NOTE __qualname__ is broken now. In the above example, `A` will be named `__main__.A.<locals>.<class>`. Still readable, but not nearly as pretty as `__main__.A`.
Remove __class__ cells.

`super` will require two arguments from now on. Ok, from the previous commit on. Whatever. Doesn't really matter.
Fix line tracking in the parser.

SyntaxErrors should now display the correct line.
Specify the order of bootstrapping in filenames.

Also, some stuff was moved to different modules. `iterate` is now in Python.
Add new syntax for `if` and `while`; break `for`.

    if condition 1 do action 1
       condition 2 do action 2
       otherwise   do action 3

    for x in xs do something  # DOES NOT WORK YET

    while condition do something
Simplify parsing of if's.

Reading everything up to the end of the line is enough.
Add some variety to the `unmatched block start` error message.

The REPL should correctly recognize open parentheses again.
Change the name of the second argument of `raise`.

    raise KeyError cause: ValueError
Allow to fit an entire `if` on one line.

    if (condition do action) (condition do action) ...
Abuse features from the latest 2 commits immediately.
Replace `do` with `=>`.

   if a => b ...
Make `unsafe` (now `except`) match `if` in syntax.

Complete with a new keyword.

    except err => do_something_ridiculous
           err :: KeyError => print 'You got a KeyError, wow'
           err :: TypeError => raise ValueError
           finally => system $ 'rm ' + __file__
Allow to reuse reverse jumps.

That is, calling a reverse JumpObject several times will insert several jump instructions pointing to the same target.
Add a more generic version of `for`.

Given a boolean expression, it will attempt to guess the values of all variables in that expression.
Note that the resulting pairs are not guaranteed to be unique if there is an `or`. Also, the behavior will be undefined if there is an `or` and one of the ranges is an iterator OR the same variable is in multiple ranges and one of them is an iterator.

    for a => print a  # True
    for a and b => print a b  # True True
    for a in range 5 => print a  # 0, 1, 2, 3, 4
    for a in range 5 and a in range 3 => print a    # 0, 1, 2
    for a in range 5 and b in range 3 => print a b  # 0 0, 0 1, 0 2, 1 0, ...

    for a or b => print b  # True False, True True, False True, True True
Reorder functions in 42.loops.
Make `except` return values from conditional clauses.

That is,

    except e => int 'a'
           e :: ValueError => 10

will now return 10, not None.
Allow to partially bind operators with indented blocks.

Doesn't break anything, as that syntax didn't make sense anyway.

    +
      1
      2

  is equivalent to

    (+ 2)

  with 1 evaluated after +, but before 2.
Allow to omit either side of `->`.
Always call has_priority with (right link, left link).

It *does* matter now.
Allow to omit both sides of `->` at the same time.