Fix emacs highlighting of symbols that contain keywords.

Previously, symbols such as `prepend!` or `net_required_for` incorrectly
had `end` and `for` highlighted.
`in` is a keyword, so highlight it.
Highlight types in all type annotations.
Highlight parent types in type declarations.
Highlight parameter types and subtypes.
Don't highlight that that happens to contain a constant.

For example, `Inf` in `StaticVarInfo`.
Correcting type regex.
`throw` and `error` are built-in functions that we should highlight.
Highlight the function name, not the module name, in declarations.

For example, the code:

function Base.getindex{T,S}(x::ArraySplit{T,S,Nothing}, i::Int)
    (i >= 1 && i <= x.k) || throw(BoundsError())
    copy!(x.buf, 1, x.s, (i-1)*(x.n-x.noverlap) + 1, x.n)
end
Merge pull request #7963 from Wilfred/emacs_highlighting_fixes

Emacs highlighting fixes