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
(non nested) tuple types is supported, e.g. M.f(x::(Int,)) = 1.