implement Blosc compression

For issue #173.   This adds a dependency on the Blosc.jl package but otherwise does not alter the build process in any way; it is implemented by porting the [blosc-filter.c](https://github.com/Blosc/c-blosc/blob/3a668dcc9f61ad22b5c0a0ab45fe8dad387277fd/hdf5/blosc_filter.c) file from c-blosc (MIT/expat licensed, written by @FrancescAlted) to pure Julia.  (Note that all of the real work is still done by the C libblosc library.)

I've only tried some cursory tests so far:
```julia
using HDF5

function example(fname, A, blosc=0)
    fid = h5open(fname, "w")
    if blosc > 0
        fid["A", "chunk", (max(1<<16,length(A)),), "blosc", blosc] = A
    else
        fid["A"] = A
    end
    close(fid)
end

A = rand(10^6)
for lev = 0:9
    t = Inf
    for trial = 1:3
        t = min(t, @elapsed example("foo$lev.h5", A, lev))
    end
    println(lev > 0 ? "Blosc level $lev: " : "no compression: ", t, "sec")
end

B = h5read("foo6.h5", "A")
B == A && println("read foo6 successfully!")

C = Float64[1:length(A)]
for lev = 0:9
    t = Inf
    for trial = 1:3
        t = min(t, @elapsed example("bar$lev.h5", C, lev))
    end
    println(lev > 0 ? "Blosc level $lev: " : "no compression: ", t, "sec")
end
```
The output (for single-threaded Blosc) is (on 2.5GHz Core i7 Mac laptop):
```
no compression: 0.012813188sec
Blosc level 1: 0.02268478sec
Blosc level 2: 0.019134791sec
Blosc level 3: 0.020563818sec
Blosc level 4: 0.026395967sec
Blosc level 5: 0.042170609sec
Blosc level 6: 0.042747113sec
Blosc level 7: 0.049472961sec
Blosc level 8: 0.047690073sec
Blosc level 9: 0.044360194sec
read foo6 successfully!
no compression: 0.010148526sec
Blosc level 1: 0.006516468sec
Blosc level 2: 0.006538862sec
Blosc level 3: 0.004678547sec
Blosc level 4: 0.004806036sec
Blosc level 5: 0.005265478sec
Blosc level 6: 0.005618196sec
Blosc level 7: 0.00542599sec
Blosc level 8: 0.004425446sec
Blosc level 9: 0.00505796sec
```
For random `Float64` data (which gets about 10% compression), it is around 2× slower than uncompressed HDF5 at moderate compression levels.  For sequential `Float64` data (which gets 90–95% compression), it is around 2× faster than uncompressed HDF5.

(Probably the code could be cleaned up a bit more, but I wanted to see what people think and let you kick on the tires first.)
I haven't the faintest idea.  The [original formula](https://github.com/h5py/h5py/blob/ac08ec797df3968a1cc5b65e168e73335b140c98/h5py/_hl/filters.py#L251-L301) was `1.5 * 16*1024  * (2**np.log10(dset_size/(1024.*1024)))`, but `2^(log10(x)) = x^(1/log2(10))` is pretty close to `cbrt(x)`.

I assume that this heuristic is the result of some benchmarks by the Python people, although I can't make much theoretical sense out of it.  However, I don't think it actually matters that much; the main thing is just that the chunks should not be too small or too large.  So, I didn't enquire too closely.