Add ZFS_LINUX_TRY_COMPILE_HEADER autoconf macro

This patch adds support for a sixth parameter to be supplied to the
ZFS_LINUX_COMPILE_IFELSE autoconf macro. This parameter is used to
populate the contents of the new conftest.h file. If no sixth parameter
is provided, conftest.h will be empty.

This was added in preparation for adding autoconf checks to test the
availability of Linux tracepoint macros. Due to the odd nature of the
Linux tracepoint macro API, a separate ".h" must be created (the path
and filename is used internally by the kernel's define_trace.h file).

In addition, the ZFS_LINUX_TRY_COMPILE_HEADER autoconf macro was
introduced to make it easier to use this functionality. This macro is
nearly identical to the ZFS_LINUX_TRY_COMPILE macro, except it has
support for a fifth option that is then passed as the sixth parameter to
ZFS_LINUX_COMPILE_IFELSE.

Signed-off-by: Prakash Surya <surya1@llnl.gov>
Add HAVE_DECLARE_EVENT_CLASS configure check

This adds a configure time check to determine if we can safely enable
the Linux tracepoint functionality. We need to selectively disable the
tracepoint code due to the kernel exporting certain functions as GPL
only. Without this check, the build process will fail at link time.

Signed-off-by: Prakash Surya <surya1@llnl.gov>