updated api to use common collection interfaces, equals/hash

- use base collection interfaces, rather than concrete subclasses
- use concurrent hash maps for thread safety where possible 
- add hash/equals to common point and vector classes