get 'goal targets' using similar codepath to 'goal builddict'

'goal targets' and the thing that builds build_dictionary.html used different code. At any given time, one or the other worked OK, but never both. Most recently, 'goal targets' doesn't show "inherited" docstrings :-( Also, if you wanted CLI help for a non-target thing like 'artifact', you got none :-(

This change...
moves builddict's reflection-y code out to backend/core/tasks/reflect.py . Tweaks 'goal targets' to get its info from reflect.py. Yay, one less code path. Has the nice side effect of pulling in help for 'artifact', not a target type but useful.

Testing Done:
started up https://travis-ci.org/pantsbuild/pants/builds/37021417

Bugs closed: 584

Reviewed at https://rbcommons.com/s/twitter/r/1112/
Sync of https://github.com/pantsbuild/pants/commit/34dd5ff02d71d40f0aaa7641667aec0aa0dcc19a