Posts, Post Types: Correct the check for non-existing post in get_post_permalink().
The function was erroneously calling is_wp_error() on the result of a get_post() call, which returns null on failure, and never returns a WP_Error object.
Previously, passing a non-existing post ID to the function would result in a home URL being returned and a few Attempt to read property "post_type, post_name, hierarchical..." on null PHP warnings.
This commit ensures get_post_permalink() returns false on failure, which brings parity with get_permalink().
Includes a unit test to confirm the correct behavior.
Follow-up to [12923], [13023], [32606].
Props renegeuze, manzoorwani.jk.
Fixes #45329.