Minor updates to the code and interface

* invert public/private from Pairhmm.h to keep public interface at the top
* hide all possible information in pairhmm_impl from derived classes
* revert gcc optimization level to O4
* move all non-commited test data to 'other' and add it to .gitignore
* rename PairhmmImpl to PairhmmBase
Add multithreading to the cpu code

* add testcase caching for asynchronous implementation
* add async parallelization