add freefem-specific syntax

In particular, add types, some builtin functions, and keywords for
finite elements and solvers.

* Broken: treat preprocessors as they would be if freefem used the "#"
  prefix.

* Broken: ignore "func" since it is overloaded to be both a type and
  some sort of type modifier for function declarations

* Broken: blocks (if, while, for) do not indent properly outside of
  functions

* Broken: some indentation is still off. For instance, the following
  breaks indentation in c++-mode but not java-mode:

    u[] = inv(A)*F[];