Implemented contact calculation through geometric hashing

This is a port of the contact calculation code that I previously implemented in https://github.com/eppic-team/owl . Calculation of atom-level and residue-level contacts is possible both for intra-chain and inter-chain contacts.