Added template implementations and other tweaks.

Details:
- Added a 'template' configuration, which contains stub implementations of the
  level 1, 1f, and 3 kernels with one datatype implemented in C for each, with
  lots of in-file comments and documentation.
- Modified some variable/parameter names for some 1/1f operations. (e.g.
  renaming vector length parameter from m to n.)
- Moved level-1f fusing factors from axpyf, dotxf, and dotxaxpyf header files
  to bli_kernel.h.
- Modifed test suite to print out fusing factors for axpyf, dotxf, and
  dotxaxpyf, as well as the default fusing factor (which are all equal
  in the reference and template implementations).
- Cleaned up some sloppiness in the level-1f unb_var1.c files whereby these
  reference variants were implemented in terms of front-end routines rather
  that directly in terms of the kernels. (For example, axpy2v was implemented
  as two calls to axpyv rather than two calls to AXPYV_KERNEL.)
- Changed the interface to dotxf so that it matches that of axpyf, in that
  A is assumed to be m x b_n in both cases, and for dotxf A is actually used
  as A^T.
- Minor variable naming and comment changes to reference micro-kernels in
  frame/3/gemm/ukernels and frame/3/trsm/ukernels.
Added section overrides to test suite.

Details:
- Added new lines of input to the test suite's input.operations file, which
  allows the user to disable entire sections (levels) of tests. Before this
  change, the user had to manually disable each operation tests's "master
  switch". (This is why input.operations.0 existed: to allow a more
  convenient starting point for someone who only wanted to test one or a
  few operations.)
Fixed outdated fusing factor macros in 1f kernels.

Details:
- Updated level-1f kernels for x86_64 and bgq to use renamed fusing factor
  macros. Meant to include this in 5e54f46c. Thanks to Fran for pointing
  this out.
More updates to level-1f kernels for core2-sse3.

Details:
- Changed types in function signatures to match new prototypes. Meant to
  include this in previous commit.
Cleaned up old test drivers.

Details:
- Minor updates to old test drivers in preparation for our participation
  in ACM TOMS's replicated results initiative.
Added test suite modules for level-1f, 3 kernels.

Details:
- Added test modules in test suite for level-1f kernels and level-3
  micro-kernels. (Duplication in the micro-kernels, for now, is NOT
  supported by these test modules.)
- Added section override switches to test suite's input.operations file.
- Added obj_t APIs for level-1f front-ends and their unblocked variants to
  facilitate the level-1f test modules. Also added front-end for dupl
  operation.
- Added obj_t-based check routines for level-1f operations, which are
  called from the new front-ends mentioned above.
- Added query routines for axpyf, dotxf, and dotxaxpyf that return fusing
  factors as a function of datatype, which is needed by their respective
  test modules.
- Whitespace changes to bli_kernel.h of all existing configurations.
Added fusing factors, MR/NR to test suite output.

Details:
- Updated the test suite driver (and modules where appropriate) so that
  the level-1f fusing factors are output along with the variable dimension.
  While this is not strictly necessary, since the fusing factors are output
  in the initial parameter summary, it allows extra reassurance to the user
  since the fusing factors appear alongside the variable dimension, which
  together give a complete picture of the problem size. Similar changes were
  made for outputting the register blocksizes when reporting results for the
  micro-kernel test modules.
Fixed minor perf bug in gemm_ker_var2.

Details:
- Fixed a minor performance bug in bli_gemm_ker_var2.c (and the experimental
  bli_gemm_ker_var5.c) whereby the addresses for a_next and b_next are not
  computed correctly (ie: do not wraparound) at the edge cases. Thanks to
  Tze Meng for helping me identify this bug.
Added Fran's Sandy Bridge kernels/configuration.

Details:
- Added a kernel directory for kernels developed by Francisco Igual for
  the Sandy Bridge architecture, including a dgemm ukernel coded with
  AVX intrinsics.
- Added a configuration for Sandy Bridge using values supplied by Fran.
Minor fixes to piledriver configuration, ukernel.

Details:
- Applied a patch from Tyler that fixes minor staleness in the piledriver
  configuration and gemm micro-kernel.
- Very minor changes to test suite input files.
Fixed parameter checking issue in BLAS syr[2]k.

Details:
- Fixed a minor parameter checking bug in the BLAS compatibility layer
  for [sd]syrk and [sd]syr2k. Specifically, if 'C' is passed in for the
  trans parameter of either operation, it is (a) allowed, and (b) treated
  as 'T' (whereas previously it was disallowed). Thanks for Vladimir
  Sukharev for finding and reporting this bug.
Fixed over/under-flow in complex inversion.

Details:
- Fixed the complex bli_?inverts() macros, which were inverting elements
  in an "unsafe" manner, such that very large and very small values were
  unnecessarily over/under-flowing. Thanks for Vladimir Sukharev for
  reporting this bug.
- Comment update to bli_sumsqv_unb_var1.c.
- Removed redundant bli_min() macro in bli_scalar_macro_defs.h.
- Changed 1.0F to 1.0 for bli_drands() macro.
Fixed bugs in scalm and setm.

Details:
- Fixed bugs in scalm and setm that resulted in segmentation faults when
  beta is not the same type as the matrix operand. Thanks to Vladimir
  Sukharev for reporting this bug.
- Changed axpym and scal2m front-ends in fashion similar to that of scalm
  and setm; namely, the alpha scalar is copy-cast the type of the first
  matrix operand.
- Changed the template and reference configurations' bli_config.h files
  so that the number of memory allocator blocks of A and B are set based
  on BLIS_MAX_NUM_THREADS.
- Comment updates to bli_obj.c and variable rename in bla_nrm2.c.
Defined missing symbols in bla_rotg.c

Details:
- Defined local equivalents of libf2c's r_sign(), d_sign(), c_abs(), and
  z_abs(), which are needed by bla_rotg.c. Also defined r_abs() and
  d_abs() for completeness. Thanks to Vladimir Sukharev for reporting
  these bugs.
Fixed bug in complex invscals.

Details:
- Fixed complex inversion in invscals and invscaljs whereby the
  imaginary component was being computed incorrectly.
- Use bli_fmaxabs() instead of bli_fabs() when choosing the scalar
  in inverts, invscals, and invscaljs.
- Changed bli_abs() and bli_fabs() macro definitions to use "<="
  operator instead of "<".
Added new dotxaxpyf variant 2.

Details:
- Added a new variant for dotxaxpyf that is based on dotxf and axpyf
  kernels. By default, this variant is not used by any other operation.
Added scaling to abval2s, sqrt2s macros.

Details:
- Re-defined abval2s and sqrt2s macros to use scaling to avoid underflow
  and overflow from squaring the real and imaginary components. (This is
  the same technique used to fix recent bugs in invscals/invscaljs and
  inverts.)
Fixed a bug related to Hermitian matrix diagonals.

Details:
- Fixed a bug whereby BLIS assumed that the imaginary components of the
  diagonal elements of Hermitian matrices were already zero. This property
  is now enforced when the matrix is packed (bli_packm_blk_var2). Thanks
  to Vladimir Sukharev for reporting this bug.
- Minor comment updates to template kernels.
Fixed bugs in scalv and setv.

Details:
- Fixed bugs similar to those addressed in cca1e1f51dc6, whereby
  a segmentation fault may occur if beta is not the same type as
  the vector operand for scalv and setv.
- Changed axpyv and scal2v front-ends in a similar fashion.
Minor comment update to BLAS compat files.