add CFDP decoding
this PR adds CFDP (CCSDS File Delivery Protocol) this protocol is used to transfer files and file-system actions between satellites and/or space probes
this work is only intended for decoding frames
sorry there's no test so far, it has been only used to decode frames dumped via tcpdump while spying exchanges between instances created with https://gitlab.com/librecube/lib/python-cfdp some parts are not coded because they haven't been triggered by the exchanges later on, the decoders will be tested against other CFDP implementations
pylint score is 9.08/10 the remaining warnings are: cfdp.py:170:5: W0511: TODO 5.4.2 (fixme) cfdp.py:293:9: W0511: TODO fault locations TLV (fixme) cfdp.py:380:9: W0511: TODO segment_requests 5.2.6.1 (fixme) cfdp.py:356:54: W0108: Lambda may not be necessary (unnecessary-lambda) cfdp.py:398:53: W0108: Lambda may not be necessary (unnecessary-lambda) cfdp.py:414:17: W0108: Lambda may not be necessary (unnecessary-lambda) cfdp.py:418:17: W0108: Lambda may not be necessary (unnecessary-lambda) cfdp.py:424:17: W0108: Lambda may not be necessary (unnecessary-lambda)
for the TODOs, well, it has already been discused for the lambda, they make the code easier to understand and others, identical, are not reported...