Make `-target` saner

by making it return a GTObject if it's a direct reference or another GTReference if it's symbolic (a.k.a it does only one level of resolution) and `-resolvedTarget` & `-resolvedReference` which respectively return the GTObject behind a chain of reference, or the last direct reference in a chain.