Parameterize HMM

Move HMM parameters into the constructor and made reference and test sequences as arguments to alignment function

This part of bringing some other changes from HMM refactor branch, some other things here:
- Removed fpcompare function
- Added alignment state enumeration
- split alignment into two functions