Correct highlighting for types/specs

My second pull request fixes two bugs associated with Erlang's type system:

1. The parentheses after some directives, e.g. the `-spec` directive can be omitted, however the directive would then be highlighted as an atom.

``` erlang
-spec(foo() -> { ok, bar }). % spec ix highlighted
-spec foo() -> { ok, bar }. % spec is not highlighted, though it is perfectly valid
```

2. Defining record types, the `::` operator was not recognized, and types were only recognized, if defaults were set:

``` erlang
-record({
  foo = default :: atom() % atom() is highlighted as a function/type
  bar :: atom() % atom() is not highlighted
})
```

Best,
Martin