Special-case np.hash(None)
Fix Concept representation, large refactor

- Concepts should not be coupled to the subsystem that they were
  computed for; their cause and effect repertoires were
  previously expanded to the subsystem's full state-space when they
  were stored in the Concept. Now, the raw repertoires are stored as
  attributes of the Concept and only expanded when needed, during the
  calculation of concept distances. This correctly makes Concepts
  subsystem-agnostic, so that marbl-hashing works properly.
- Some concept-reducibility prechecks were moved to the concept wrapper,
  so a concept's MarblSet isn't unneccessarily calculated.
- A few other minor tweaks and refactorings.
Use null cut for conceptual information
Update empty concept test after refactoring
Update models.Concept tests
Sharpen pyemd requirement
Bring db into top-level namespace
Add memory module for common interface to memoization
Ignore database dumps
Merge branch 'feature/db' into develop

Conflicts:
	cyphi/compute.py
	cyphi/constants.py
Cache _big_mip