shape and vector via commonjs

This results with annoying namespaces but I think its only mandatory when you want to export both the interface and the class from a single file. You can further split up the interface and the implementation to separate files and then import whichever you need.