text: Title: First-class function type initializes too late
  Body: <!--
  
  Thanks for opening an issue! To help the Numba team handle your information
  efficiently, please first ensure that there is no other issue present that
  already describes the issue you have
  (search at https://github.com/numba/numba/issues?&q=is%3Aissue).
  
  -->
  
  ## Reporting a bug
  
  <!--
  
  Before submitting a bug report please ensure that you can check off these boxes:
  
  -->
  
  - [x] I have tried using the latest released version of Numba (most recent is
    visible in the release notes
    (https://numba.readthedocs.io/en/stable/release-notes-overview.html).
  - [x] I have included a self contained code sample to reproduce the problem.
    i.e. it's possible to run as 'python bug.py'.
  
  `numba.tests.test_function_type.TestFunctionTypeExtensions.test_wrapper_address_protocol_libm` fails when run by itself with:
  
  ```pytb
  numba.core.errors.TypingError: Failed in nopython mode pipeline (step: nopython frontend)
  non-precise type pyobject
  During: typing of argument at /numba/numba/tests/test_function_type.py (616)
  
  File "numba/tests/test_function_type.py", line 616:
  
          def myeval(f, x):
          ^
  
  
  ```
  User can workaround this by triggering the compiler once before the use of first-class function type. For example `jit(lambda: None)()` just to initialize everything. 