path_builder extents functionality is implemented. path_builder now has its own mutable transformation matrix. Arcs are now converted into Bezier curves and mostly work properly. The path_builder transformation matrix does not work as intended yet (e.g. it is not possible to correctly draw a rotated ellipse at the specified center point).
Changed surface::native_handle_type to grant access to both the cairo_surface_t and the cairo_t for it.
Fixed bugs in path_builder::get_extents. Added the ability to set an origin for path_builder, which solves the problem of local coordinate transformations. Updated the sample to reflect this capability. Removed commented out code in various places.