Added bli_4m API for querying 4m enabled state.

Details:
- Added bli_4m.c (and header), which defines a simple API that can be
  used to query, enable, and disable 4m-based complex support in BLIS.
  The macros BLIS_ENABLE_?COMPLEX_VIA_4M are now used to initialize
  the variable that determines the state (enabled or disabled).
- Changed bli_info*() API so that all cache and register blocksize-
  related query routines return the blksz_t objects' values as they
  exist at runtime, rather than return the values as determined by the
  configuration system (e.g. bli_kernel.h, or defaults for those values
  not specified). This sets the foundation for being able to change
  those blocksizes at runtime.
Cleaned up front-end layering for 4m/3m.

Details:
- Added an extra layer to level-3 front-ends (examples: bli_gemm_entry()
  and bli_gemm4m_entry()) to hide the control trees from the code that
  decides whether to execute native or 4m-based implementations. The
  layering was also applied to 3m.
- Branch to 4m code based on the return value of bli_4m_is_enabled(),
  rather than the cpp macros BLIS_ENABLE_?COMPLEX_VIA_4M. This lays
  the groundwork for users to be able to change at runtime which
  implementation is called by the main front-ends (e.g. bli_gemm()).
- Retired some experimental gemm code that hadn't been touched in
  months.