single procedure and QTk cards rewrite

# Single procedure
fix #43
fix #28
fix the synchronous nature of the components

The components have now a single procedure for the execution. There is no more port procedures or independent procedures.
The components are declared : 
```
component(inPorts(input)
                   outPorts(output)
                   procedure(proc{$ Ins Out Comp} ... end)
                 )
```
The argument Ins is a record containing all the buffers of the input ports. The feature is the name of the port, the value is the buffer. A array input port is represented as a sub-record.
So in the example, Ins = inBuffers(input:<Buffer>). If there is an array port, that can look like Ins = inBuffers(input:<Buf> arrayIn:buffers(1:<Buf> 2:<Buf>)).

The Out and Comp arguments are the same as before.

# QTk cards
The QTk cards have only one flow of actions. So the ports ui_in, ui_out dispear. The other ones are renamed in, out and action. The creation of a widget is made with the "create" event. 
All examples in testWidget and testCanvas

# The editor
The editor is compatible with these new changes