do reinstall binaries if their hash is not the expected

Closes: #5759

For this to work, the bundle needs to call::
``python setup.py hash_binaries`` during the bundling process, so that
the right hash gets updated in the bitmask/_binaries.py file.
You're not closing the file, I suggest you do something like:

```python
try:
  with open(...) as f:
    file_hash = ...
    return expected_hash == file_hash
except OSError: # or whatever exception open might give if os.path.isfile would return False
  return False
```