RFC: Modernizing performance benchmarks

The current performance benchmarks appear to be significantly out of sync with v0.2. This PR updates the benchmarks to bring up up to runnable condition with v0.2.

- Write generic test driver loop in blas, cat and lapack benchmarks.
- Rename lapack/decompositions.jl -> lapack.factorizations.jl.
- Conditionally update path of data files in shootout benchmarks so that perf.jl can be run in its directory and not just its parent.
- Sort benchmark now requires SortingAlgorithms package. Added HeapSort and RadixSort benchmarking.
- Fortran microbenchmarks compile modules in their own specific module directories, so that they can all be run in parallel if desired.
- Added missing libm dependency to C microbenchmark. Uses libm/openlibm settings from Julia's build dependencies where possible.
- Programmatically extracts version numbers from the various language interpreters/compilers to create microbenchmark report table.
- Provides go implementation of randmulstat and includes instructions on how to set up go to run the benchmarks.
- Makefile now emits warning and turns off -fexternal-blas option when using gfortran and 64-bit BLAS library together (see [discussion in julia-dev](https://groups.google.com/forum/#!topic/julia-dev/7h6jFegsusw)).
- Other minor formatting and code rewrites.