Simplify pid selection on PMT changes.

Consider the following PMT log:

> Enable ECM pids 6206 and 7306 and ES pids 2256, 2530, 2531.

debug: setting filter on PID 2256
debug: setting filter on PID 2530
debug: setting filter on PID 2531
debug: setting filter on PID 6306
debug: setting filter on PID 7306
debug: new PMT program=6411 version=7 pcrpid=2256
debug:   * ES pid=2256 streamtype=0x02 streamtype_txt="13818-2 video (MPEG-2)"
debug:     - desc 52 stream_identifier component_tag=1
debug:     - desc 09 ca sysid=0xd00 pid=6306
debug:     - desc 09 ca sysid=0x664 pid=7306
debug:   * ES pid=2530 streamtype=0x06 streamtype_txt="13818-1 PES private data"
debug:     - desc 52 stream_identifier component_tag=6
debug:     - desc 59 subtitling language=tur type=0x10 composition=2 ancillary=2
debug:     - desc 09 ca sysid=0xd00 pid=6306
debug:     - desc 09 ca sysid=0x664 pid=7306
debug:   * ES pid=2531 streamtype=0x06 streamtype_txt="13818-1 PES private data"
debug:     - desc 52 stream_identifier component_tag=7
debug:     - desc 59 subtitling language=eng type=0x10 composition=2 ancillary=2
debug:     - desc 09 ca sysid=0xd00 pid=6306
debug:     - desc 09 ca sysid=0x664 pid=7306
debug: end PMT

> Enable pids 6206 and 7306 but disable them again because they are not
> mentioned in the ES desc loop and in the global desc loop of the old PMT.

debug: setting filter on PID 6306
debug: setting filter on PID 7306
debug: unsetting filter on PID 6306
debug: unsetting filter on PID 7306
debug: new PMT program=6411 version=14 pcrpid=2256
debug:     - desc 09 ca sysid=0xd00 pid=6306
debug:     - desc 09 ca sysid=0x664 pid=7306
debug:   * ES pid=2256 streamtype=0x02 streamtype_txt="13818-2 video (MPEG-2)"
debug:     - desc 52 stream_identifier component_tag=1
debug:   * ES pid=2530 streamtype=0x06 streamtype_txt="13818-1 PES private data"
debug:     - desc 52 stream_identifier component_tag=6
debug:     - desc 59 subtitling language=tur type=0x10 composition=2 ancillary=2
debug:   * ES pid=2531 streamtype=0x06 streamtype_txt="13818-1 PES private data"
debug:     - desc 52 stream_identifier component_tag=7
debug:     - desc 59 subtitling language=eng type=0x10 composition=2 ancillary=2
debug: end PMT

Commit 34f232f7e8d1fbe2a2930b597e40fb410c9ac5d6 added checks for global
descriptor loop but it was not enough. Instead of adding "yet more checks"
because ECM pids can be described in two places, I used the opportunity to
simplify the code that deals with pid selection in PMT.

Now we have only one place that parses the PMT and we use a table to mark
the pids in the new and in the old table.

50 lines of code were removed and the code was made a lot simpler and easy
to follow for the price of 8k stack space. As a bonus the bug described above
was fixed.