Abstracts creation of tests with fptrs.

This makes it much more convenient for third parties to define L3TestDefine() variants using their own fptr types.
Refactors the fptr symbol logic out.
Adds a function for retrieving the function pointer associated with a block.
Adds a function for getting a test subject-suitable fptr from a block.
Use L3_EXTERN instead of extern.

Mostly cos convention.
Adds an L3TestDefine overload for blocks as test subjects.