Supporting open generics, closes #549, closes #59
Merge branch 'OpenGenerics' into develop