Don't call parse-partial-sexp to find the last opening paren.

This doesn't work because Julia's character syntax cannot simply be
expressed with an Emacs syntax table. However, parse-partial-sexp
is depending on the syntax table to avoid strings and characters.

Instead, just move backwards until we find a paren that isn't in a
string, character or comment.

Fixes https://github.com/JuliaLang/julia/issues/8924
Optimising julia-at-keyword.

It's an expensive function and we call it quite often. Ensure
we do the cheap checks first, and avoid calling julia-in-brackets
only if necessary.
Make julia-last-open-block-pos a pure function that only returns the position.
Fix indentation when we're indenting a line that has an open paren after point.
Comment improvements.
Make julia-char-regex stricter.

This gives us more accurate highlighting, and makes julia-in-char more
accurate. Previously, it could be confused by:

                edit_insert(s, ';|')
            end
        end,
        '?' => function (s,o...)

because ; is legal before a character, and we weren't enforcing a
maximum length of character literals.
Don't error if the first line of the file is empty.

We can't go back before (point-min), and Emacs errors if we try.
If the previous line has a trailing =, that should take precedence over blocks.