Default filter linking

When no link instructions are given (see below), the default linking strategy used is either _implicit mode_ (default in `gpac`) or _complete mode_ (if [-cl](gpac_general/#cl) is set).  
Each PID is checked for possible connection to all defined filters, in their declaration order.  
For each filter `DST` accepting a connection from the PID, directly or with intermediate filters:  

- if `DST` filter has link directives, use them to allow or reject PID connection.  
- otherwise, if _complete mode_ is enabled, allow connection..  
- otherwise (_implicit mode_):  

    - if `DST` is not a sink and is the first matching filter with no link directive, allow connection.  
    - otherwise, if `DST` is not a sink and is not the first matching filter with no link directive, reject connection.  
    - otherwise (`DST` is a sink) and no previous connections to a non-sink filter, allow connection.  

  
In all linking modes, a filter can prevent being linked to a filter with no link directives by setting `RSID` option on the filter.  
This is typically needed when dynamically inserting/removing filters in an existing session where some filters have no ID defined and are not desired for the inserted chain.  
A filter with `RSID` set is not clonable.  
  
Example
```
gpac -i file.mp4 c=avc -o output
```
  
With this setup in _implicit mode_:  

- if the file has a video PID, it will connect to `enc` but not to `output`. The output PID of `enc` will connect to `output`.  
- if the file has other PIDs than video, they will connect to `output`, since this `enc` filter accepts only video.  

  
Example
```
gpac -cl -i file.mp4 c=avc -o output
```
  
With this setup in _complete mode_:  

- if the file has a video PID, it will connect both to `enc` and to `output`, and the output PID of `enc` will connect to `output`.  
- if the file has other PIDs than video, they will connect to `output`.  

  
Furthermore in _implicit mode_, filter connections are restricted to filters defined between the last source and the sink(s).  
Example
```
gpac -i video1 reframer:saps=1 -i video2 ffsws:osize=128x72 -o output
```
  
This will connect:  

- `video1` to `reframer` then `reframer` to `output` but will prevent `reframer` to `ffsws` connection.  
- `video2` to `ffsws` then `ffsws` to `output` but will prevent `video2` to `reframer` connection.  

  
Example
```
gpac -i video1 -i video2 reframer:saps=1 ffsws:osize=128x72 -o output
```
  
This will connect `video1` AND `video2` to `reframer->ffsws->output`  
  
The _implicit mode_ allows specifying linear processing chains (no PID fan-out except for final output(s)) without link directives, simplifying command lines for common cases.  

__Warning: Argument order really matters in implicit mode!__  
  
Example
```
gpac -i file.mp4 c=avc c=aac -o output
```
  
If the file has a video PID, it will connect to `c=avc` but not to `output`. The output PID of `c=avc` will connect to `output`.  
If the file has an audio PID, it will connect to `c=aac` but not to `output`. The output PID of `c=aac` will connect to `output`.  
If the file has other PIDs than audio or video, they will connect to `output`.  
  
Example
```
gpac -i file.mp4 ffswf=osize:128x72 c=avc resample=osr=48k c=aac -o output
```
  
This will force:  

- `SRC(video)->ffsws->enc(video)->output` and prevent `SRC(video)->output`, `SRC(video)->enc(video)` and `ffsws->output` connections which would happen in _complete mode_.  
- `SRC(audio)->resample->enc(audio)->output` and prevent `SRC(audio)->output`, `SRC(audio)->enc(audio)` and `resample->output` connections which would happen in _complete mode_.