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.)
The only reason DataFrames is added manually in the .travis.yml file is that it's not REQUIRED by the package; it's an optional testing dependency.