[AdgPath] Implemented adg_path_chamfer()
This API needed the implementation of the operation infrastructure.
A private struct is used (AdgOperation) holding all the data needed
to identify the operation. The primitives involved in an operation
(supposing it to be a binary operation such as the chamfer) are the
last primitive appended to the path and the next one. The cases
where an operation is not properly closed (because no next primitive
is added, for instance) should be noticed with a warning without
further actions.