Shapes buffer using font turning its Unicode characters content to positioned glyphs.
If features is not `NULL`, it will be used to control the features applied during shaping. If two features
have the same tag but overlapping ranges the value of the feature with the higher index takes precedence.
| font |
an Font to use for shaping |
| buffer |
an Buffer to shape |
| features |
an array of user specified Feature or `NULL` |
| num_features |
the length of |