Added matrix member functions init_shear_x, init_shear_y, shear_x, shear_y, determinant. Changed matrix::translate, matrix::scale, and matrix::rotate so that they return a reference to the matrix (allows chaining) and so that they multiply the existing matrix by the matrix generated for the parameters (previously it was "existing = new * existing"; now it's "existing *= new"). Renamed path_builder::clear to path_builder::reset to properly reflect semantics and avoid confusion with STL container clear member functions.