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.)
Should this just return `Int[]`?