Stroll of the navigator... (Consolidate and better cache navigation access code)

Dependent navigations may be for collections or references. This code moves the check for collection/reference inside the cache lookup to avoid doing it over and over. Also, the property setter/getter are made available for collection nav props because these are needed for creating an setting a new collection automatically.