julia-mode.el: improve matching of function assignment syntax

The case when a module qualification is prepended to the function name
is handled like in normal function syntax, and support for one level of
nested parentheses is added, e.g. M.f(x::(Int,)) = 1 (tuple types) or
M.f(x, y=length(x)).
Merge pull request #9236 from JuliaLang/rf/julia-mode-function

julia-mode.el: improve matching of function assignment syntax