Add slice processing to frei0r.
Add slice processing to frei0r.

This adds the property "threads" to all producers, filters, and
transition but not yet in metadata. If 0, it lets mlt_slices_init()
decide how many threads to use (CPU count or MLT_SLICES_COUNT env var).
It must be specified to enable slice-based processing.

This does not work well with all plugins and with all combinations of
height and threads values (height should be evenly divisible by thread
count). Also, it locks the service to inhibit consumer frame-threaded
concurrency. IOW, combined slice threading and frame threading for the
same frei0r plugin does not work. However, you can still use both for
pipelines that can do other things on frame threads.

mltframework/mlt,siddharudh/mlt,mltframework/mlt,j-b-m/mlt,j-b-m/mlt,siddharudh/mlt,siddharudh/mlt,xzhavilla/mlt,j-b-m/mlt,mltframework/mlt,xzhavilla/mlt,mltframework/mlt,mltframework/mlt,xzhavilla/mlt,siddharudh/mlt,mltframework/mlt,mltframework/mlt,j-b-m/mlt,mltframework/mlt,siddharudh/mlt,j-b-m/mlt,siddharudh/mlt,siddharudh/mlt,xzhavilla/mlt,j-b-m/mlt,mltframework/mlt,xzhavilla/mlt,xzhavilla/mlt,j-b-m/mlt,j-b-m/mlt,xzhavilla/mlt,xzhavilla/mlt,siddharudh/mlt,j-b-m/mlt,j-b-m/mlt,xzhavilla/mlt,siddharudh/mlt,mltframework/mlt