change the way refcounting works

Upipe structures do no longer hold a refcount by themselves, but instead point
to a urefcount structure (which can be NULL). The release call-back is now
part of the urefcount structure. This allows to remove the proxy pipe and
the upipe_modules dependancy.

Also add UBASE_FROM_TO macro.

Also remove unused features from block managers (prepend, append and extend
primitive).
rem uprobe_log in favour of print in upipe_throw_*
remove UPROBE_HANDLED_FLAG no longer necessary
refcount uprobe structure

This has the following implications:
 - There is no adhoc probes anymore, or to be precise, all probes are now
   adhoc probes.
 - Every time you pass a global probe to a new pipe, you have to uprobe_use()
   it, because it will be uprobe_release()d when the pipe dies (uprobe
   argument belongs to the callee).
 - The behaviour of uprobe_output changed: it is no longer automatically
   inserted by upipe_*_alloc_output. You should allocate one uprobe_output
   for all pipes that are not sinks (technically speaking).
 - Each pipe is now responsible for passing the event to the next probe(s)
   using uprobe_throw_next.
 - enum uprobe_error_code is renamed to enum ubase_err.
unit test for uprobe output
make upipe_control return enum ubase_err

Also change all related functions, start using upipe_mgr_control, and add
ubase_err_check, ubase_assert and UBASE_ERR_CHECK.
implementation of upipe_*_alloc_input
decode fewer pictures in extract_pic
introduce upump mgr control commands
introduce uref manager commands
make ubuf_control return enum ubase_err
ubase_err_check->ubase_check && UBASE_RETURN
change return type of ubuf_control/udict_control

and all associated functions, including anything attribute-related and
buffer-related. Use UBASE_RETURN, UBASE_FATAL, UBASE_ERROR, ubase_assert
and ubase_nassert to check the return value of such functions.