V0.1 of tests get_active_hardlocations(bitstring)

This draft codebase scans 2**20 hard locations (of 256 bits), and
computes the hamming distance from the bitstring.

I’m working on retrieving *exactly* the indexes and distances of these
locations, using either pyopencl.scan.GenericScanKernel().  Pretty
tough so far with close to zero documentation…
buggy code commented out.

Have to look at allocator, among other things.
A series of improvements on the BIN idea

using a large BIN to store the active hard locations
Using a PRIME for the hash table

Seems to be working now.  I wasn’t using a prime number for the hash
table—sorry world!

Using 25013 now.
Some cleanup...
Hashing 5 times gives better results

By hashing 5 times we lose 3 hardlocations in 2,238,070 found.  This is
probably the point of diminishing returns.

(Note: performance doesn’t seem to degrade much on my laptop, so the
hashing seems to be valuable).
Refactoring

terminology of “Introduction to algorithms”, section 12.4
Refactoring
Minor bug fix: hamming_distances[0] was fixed
Refactoring: naming
Renaming files
Very low errors in finding hard locations now
Preparation to code full sdm read & write

Don’t know whether needed in openCL.

Given the small number of hard locations (~1200), maybe this should be
done in numpy.

~ (1200 * N) updates for writing
~ (1200 * N) checks for reading

Approximately 300kb per operation, but way faster to try new reads &
writes.
bug fix
Merge pull request #2 from Alex-Linhares/master

New folder with v.0.1 of openCL get_active_hard_locations code