update regexp for operators

The new regexp matches all potential user defined operators in Nimrod.
add missing `nimrod-indent-current-level` and `nimrod-indent-levels`
fix dedenters regexp

The old regexp only matched simple dedenters like `else:`, but not
those with additional code in between like `elif cond:` or `except
Error:`.
rework indentation code

The main changes are:

* an update of the `nimrod-indent-context`, which now returns
  `after-operator` correctly
* `nimrod-indent-calculate-indentation` to use the new context
  information accordingly, i.e. continuation lines are indented depending on
  - being continuation of an assignment
  - being continuation of a block statement
  - being an ordinary continuation
* some utility functions have been adapted
improve indentation of `proc` bodies

A `proc` may not only appear in top-level position but also as local
variable (function literal) and even as parameter within
parentheses. Thus, being within parentheses is not sufficient to
decide the correct indenation. This change use the new function
`nimrod-util-backward-stmt` to identify the defining keyword of a
statement. If the keyword is proc, the indentation is adapted
accordingly.
make indentation relative to enclosing parentheses

This is done by narrowing the buffer to the enclosing parentheses and
doing all indentation relative to this narrowed view. Only the
indentation offset of the first line is increased by the amount of the
indentation of the enclosing opening parenthesis.
move parentheses narrowing to `nimrod-util-narrow-to-paren`
fix syntax entries for []

The entries in the syntax table must mention the complementary paren.
recognise word-operators like `and` only as whole words
make `enum` a block beginning
recognise indenters as start of block