First pass at adding parallelism to BLIS.

Added a multithreading infrastructure that should be independent of multithreading implementation in the future.
Currently, gemm blocked variants 1f and 2f, and packm variant blocked variant 1 is parallelized.
Merge branch 'master' of https://github.com/tlrmchlsmth/blis
Fixed bug in thread trees
Fixed bug with parallel packing, and bug with allocating an array of thread infos

In packm variant 1, the variable p_begin was incremented each iteration, causing a dependency.
This dependeny was removed, allowing each iteration to be executed in parallel.

Somewhere in bli_threading.c, I was allocating an array of pointers instead of an array of structs.
Added support for parallelism in gemm micro-kernel
Merge https://github.com/flame/blis

Conflicts:
	frame/1m/packm/bli_packm_blk_var1.c
Merge https://github.com/flame/blis
Modifying the thread info data structures

This change makes each operation have its own thread info type,
allowing more fine control of threading in operations that have different types of suboperations
Merge branch 'master' of https://github.com/tlrmchlsmth/blis
Added single threaded thread info data structures specifically for gemm and packm
Added files specific to threading for gemm and packm operations
Some fixes to gemm thread info tree creation,
Changed microkernel tests to use the new BLIS_PACKM_SINGLE_THREADED
instead of BLIS_SINGLE_THREADED
Switched to using environment variables to control threading.

The environment variables all follow the format BLIS_X_NT,
where X is the index of the loop as described in our paper
Anatomy of High Performance Many-Threaded Matrix Multiplication.
These indices are IR, JR, IC, KC, and JC.

Also enabled parallelism for hemm and symm, but these are currently untested.
Initial multithreading support for HERK
Fixing some bugs with herk parallelization
Added decorator for calling parallelized intermal functions

Will allow for easy support for different threading models
Enabled threading for packm blocked variants 3 and 4
Fixing function pointer issues with thread decorator
Fixed a barrier bug and a thread decorator bug
Fixed packm variants 3 and 4 where every thread was trying to manipulate the same state

Now just performed by the master thread.