Merge pull request #2 from timmolter/develop

Merge changes from main repo
Multi-thread synchronization, fixed jUnit tests, reformatted code
Changed tagging logic
Corrected null statement
Changed from multiplication and division to bitshift
Merge pull request #353 from ObsessiveOrange/develop

Multi-thread synchronization, fixed jUnit tests, reformatted code