function-args.el (moo-find-sname-in-tags): switch to using `moo-namespace-reduce'

Improvement over previous iteration is that the flattened list isn't created any more
just to filter over it.

* function-args.el (moo-namespace-reduce): new function
  (moo-flatten-namepaces): uses `moo-namespace-reduce'
function-args.el (moo-complete): split up in pieces

* function-args.el (moo-complete-candidates-2): handle e.g. "outer.prefix"
  (moo-complete-candidates-1): handle "prefix"