Modernizing performance benchmarks

- Write generic test driver loop in blas, cat and lapack benchmarks
- Rename lapack/decompositions.jl -> lapack.factorizations.jl
- Update path of data files in shootout benchmarks
- Sort benchmark now requires SortingAlgorithms package. Added HeapSort
  and RadixSort benchmarking
- Commented out broken randmatmul go microbenchmark
- Fortran microbenchmarks compile modules
- Added missing -lm dependency to C microbenchmark

TODO Fortran microbenchmark can segfault with OpenBLAS v0.2.8
Improved consistency between tests

- Revert blas test sizes to original spec
- In blas, cat and lapack tests, consistently use iter to specify number
  of trials and i to loop over iterations
- Retab to 4-space indent
Programmatically extracts version numbers to create microbenchmark
report table.
Conditionally add the relative path to the datafiles in the shootout
benchmarks.
Consolidate blas, cat and lapack test drivers
Tiny tweaks to Julia microbenchmark
Removed debugging print statements
Makefile now detects and warns against gfortran/64-bit blas combo

As gfortran does not support calling external BLAS libraries with 64-bit
integer indexing (this causes the dgemm call to fail), the Makefile now
emits a warning and turns off the -fexternal-blas option when
FC=gfortran and USE_BLAS64=0 are specified in the Julia base Make.user
file.

Also introduces BLAS_LIB variable to facilitate specifying a custom BLAS
library.
Implements randmulstat go benchmark.

Also adds instructions on how to set up go properly so that the
benchmarks can be run.
Better handling of BLAS and libm/openlibm usage in microbenchmark Makefile
Reorders languages in summary table
Merge pull request #4651 from JuliaLang/cjh/perf-upd

RFC: Modernizing performance benchmarks