Eliminate cache lookup errors in SQL functions for object addresses
 
 When using the following functions, users could see various types of
 errors of the type "cache lookup failed for OID XXX" with elog(), that
 can only be used for internal errors:
 * pg_describe_object()
 * pg_identify_object()
 * pg_identify_object_as_address()
 
 The set of APIs managing object addresses for all object types are made
 smarter by gaining a new argument "missing_ok" that allows any caller to
 control if an error is raised or not on an undefined object.  The SQL
 functions listed above are changed to handle the case where an object is
 missing.
 
 Regression tests are added for all object types for the cases where
 these are undefined.  Before this commit, these cases failed with cache
 lookup errors, and now they basically return NULL (minus the name of the
 object type requested).
 
 Author: Michael Paquier
 Reviewed-by: Aleksander Alekseev, Dmitry Dolgov, Daniel Gustafsson,
 Álvaro Herrera, Kyotaro Horiguchi
 Discussion: https://postgr.es/m/CAB7nPqSZxrSmdHK-rny7z8mi=EAFXJ5J-0RbzDw6aus=wB5azQ@mail.gmail.com
 
  19 files changed: