Extended euclidian 2d geometry library for JavaScript with objects representing points, vectors, angles, transformations, transformation decompositions