Support for >1 jack port, various sizes of jack buffers

Previous jack code in gnuradio supported only one port per jack audio source or sink. The dial_tone.py example wouldn't even work as it requires two ports. This patch adds support for up to 10 ports per jack audio source or sink.

Previous jack code transferred the first portion of the input/output vector in jack_source::work to the jack ring buffer repeatedly. For cases when work_size is larger than the space in the ringbuffer, incorrect transfer and distortion would occur. This patch correctly transfer the entire input or output items in jack_source::work.