[MRG] Locality Sensitive Hashing for approximate nearest neighbor search(GSoC)

`X` need not have a dimensionality of a multiple of 8. `GaussianProjections().fit_transform(X)` must have a multiple of 8 features. I don't understand why the error could be firing if n_components is defined to be a multiple of 8.

Do not remove the exception. The usage of this will change over time, and it is an important assertion, without which `packbits` will give us something useless (because hash boundaries will be mid-byte).