Defs

More fixes for syntax highlight. Now,`def`, `defp`, `defmodule`, `defprotocol`, `defimpl`, `defrecord`, `defrecordp`, `defmacro`, `defmacrop`, `defdelegate`, `defoverridable`, `defcallback` and `defexception` are highlighted as `Define`. Also define concept of declaration for each for these defs.

Much work in this PR. Some QA would really be appreciated. Just to remind, a good way of doing so is with this command

```vim
echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')
```