Indent "begin ... end" as "(...)"

The position of "end" may indeed look odd but it was the old style and
people are keen to preserve it.
Fixes https://github.com/ocaml/tuareg/issues/6
Indent "sig" and "struct" the same way

Addresses https://github.com/ocaml/tuareg/issues/3#issuecomment-37928567
Fixes https://github.com/ocaml/tuareg/issues/13
Correctly indent "struct" after "functor … ->"

Fixes https://github.com/ocaml/tuareg/issues/4
Move the old indentation code to a separate file
Advertise caml-types-show-call in the menu
Ignore .cmt and .cmti files for completion
Indent the block when the opener is hanging (except for "(")

This ensures the following indentation:

type t = [
  | `A
  | `B
  ]

As desired, it is the same as

type t =
  [ `A
  | `B ]
Indent type declarations by the same amount let-bindings are

The following indentations are used:

type t =
  int Map.t

type t =
  A
  | B

For the second case, it would be better to have A aligned with B but
it is a good practice to put a `|' in front of each line anyway so
that is not so bad.
Tuareg should report its version accurately (2.0.8 not 2.0.6)