do not malloc/free caPMT buffer, make it a class member
rework list management

Use LIST_FIRST, LIST_MORE, LIST_LAST and LIST_ONLY
for all services using one socket connection.

Works with OSCam >= rev9049
move ProcessSIDRequest() from SCCAMSlot to CAPMT
common code for generating CA_PMT

Obtain PMT data from VDR or demux and add it
to the common object list.
one global instances of DeCSA and CAPMT objects
drop UDP: keys obtained back via same camd.socket

Another step in simplifying interface: CA_SET_PID
and CA_SET_DESCR obtained via the same camd.socket
connection.

Works only with OSCam >= rev9063
remove PMT_FILE support

It's slow, not used by anyone and probably broken.
use new VDR interface for CamSlot decrypting

Changes was introduced in VDR 2.1.3
drop unnecessary code
DeCSA: remove stall checks and all kind of waiting
added adapter_index to socket messages

The plugin is using a single global connection to camd.socket.
In this case it was unable to distinguish between adapters
when receiving CA_SET_PID and CA_SET_DESCR.
A conflict was occurring when a PID numbers was the same across
adapters (even if it uses different descrambler indexes).
Now the PIDs are assigned per adapter, avoiding simultaneous
channel decryption problems.

An adapter_index byte was introduced in OSCam rev9095.
Override ProvidesCa() and stop scanning channels.conf for CAIDs

The changes in VDR let us override ProvidesCa(const int *CaSystemIds)
informing VDR that every CAID can be decrypted by our CamSlot.
Of course it depends on OSCam but we don't know it at this stage.
Drop the old code which generates a list of CAIDS from channels.conf.

Closes #39
Delete unused defines and variables
Cleanup starting and stopping the plugin

Fix storing a pointers to SCCIAdapter objects and properly delete them
when stopping.

Moved creation of the objects required by DVBAPI from DVBAPI::Initialize()
to DVBAPI::Start(). That way it doesn't matter whether the DVBAPI plugin is
loaded before or after the device plugin.

Moved deletion of the objects required by DVBAPI from SCCIAdapter::~SCCIAdapter()
to DVBAPI::Stop(). That way things get cleaned up in the same source area
where they have been allocated.
UDPSocket.cpp: call Cancel(3) in destructor
UDPSocket.cpp: we don't need to associate sCCIAdapter anymore
UDPSocket.cpp: initialize sock variable

The 'sock' variable will be used for handling all camd.socket
communication.
This commit also fixes closing uninitialized variable, which
could close eg. stdout.
Rename UDPSocket to SocketHandler

Currently the file has nothing common with UDP.
Simplify creating and deleting SocketHandler thread.

Also check for Running() in SocketHandler::Action().
SocketHandler: name a thread