Plug a memory leak.

Addressing:
12 bytes in 1 blocks are definitely lost in loss record 1 of 2
   at 0x4A0858C: memalign (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x4A08651: posix_memalign (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x4C8DC13: SEXP_val_new (sexp-value.c:38)
   by 0x4C8B2D0: SEXP_parse_kl_string (sexp-parser.c:1638)
   by 0x4C8D8EA: SEXP_parse (sexp-parser.c:525)
   by 0x4C858F4: SEAP_packet_recv (seap-packet.c:721)
   by 0x4C871CA: SEAP_recvmsg (seap.c:356)
   by 0x4C7E998: oval_probe_comm (oval_probe_ext.c:487)
   by 0x4C7FC5E: oval_probe_ext_eval (oval_probe_ext.c:1085)
   by 0x4C7FF19: oval_probe_ext_handler (oval_probe_ext.c:902)
   by 0x4C6EC02: oval_probe_query_object (oval_probe.c:285)
   by 0x4C6EE73: oval_probe_query_criteria (oval_probe.c:374)

16 bytes in 1 blocks are definitely lost in loss record 2 of 2
   at 0x4A0645D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x4C890DD: SEXP_new (sexp-manip.c:1593)
   by 0x4C8CB48: SEXP_parse (sexp-parser.c:490)
   by 0x4C858F4: SEAP_packet_recv (seap-packet.c:721)
   by 0x4C871CA: SEAP_recvmsg (seap.c:356)
   by 0x4C7E998: oval_probe_comm (oval_probe_ext.c:487)
   by 0x4C7FC5E: oval_probe_ext_eval (oval_probe_ext.c:1085)
   by 0x4C7FF19: oval_probe_ext_handler (oval_probe_ext.c:902)
   by 0x4C6EC02: oval_probe_query_object (oval_probe.c:285)
   by 0x4C6EE73: oval_probe_query_criteria (oval_probe.c:374)
   by 0x4C6EDAF: oval_probe_query_criteria (oval_probe.c:427)
   by 0x4C6EDAF: oval_probe_query_criteria (oval_probe.c:427)
Merge pull request #11 from jan-cerny/maint-1.0

Plug a memory leak.
rds_index*free procedures shall be able to handle NULL

The very most of the OpenSCAP _free routines can take NULL pointer so
the caller does not need to care. rds_index*free procedures should not
be an exception.
tests: Do not wipe out testing directory on error.

Addressing testers wondering like:
Only in /tmp/tmp.QMXpY8mvdu: (null)
Only in ./rds_split_simple: report-request.xml
Only in ./rds_split_simple: report.xml
The files are different after going through result data stream!
$ ls /tmp/tmp.QMXpY8mvdu/
ls: cannot access /tmp/tmp.QMXpY8mvdu/: No such file or directory
Send error message when TestResult could not be parsed.

(cherry picked from commit dbe3d5f05526e97728d42cf88bce7c8e9ff94ed0)
trac#415: Fix parsing of TestResult/profile.
Refactor: Extract function: rds_index_import_source
Make a use of rds_index_import_source

Each of the changes avoids an extra file open/parse.
Deprecate function: rds_index_import
Promote rds_index_parse from static to privileged.
Introduce: ds_rds_session_get_rds_idx
Make a use of ds_rds_session_get_rds_idx
Make a use of ds_rds_session_get_rds_idx
Drop rds_index_import_source.

Introducing was not a good move. It will be better to keep rds_index
initialized (parsed) only by ds_rds_session. That approach has following
two benefits: (1) ds_rds_session operations will mimic the
ds_sds_session, (2) callers will not be tempted to parse the thing
twice. The initialization of ds_rds_session in oscap-info only for sake
of getting index is cost I prefer to undertake.
Use oscap_source to save arf components (arf:content)
tests: The oscap_source capitalized encoding.
Do not guess request_id when splitting ARF.

This is fishy. If there is no report-request in relationship with the
report we will try to find the very first one. This seems incorrect,
because we were requested to dump a couple of specific IDs. (compare
code of utils/oscap-ds.c with rds.c).
Refactor: Extract function: _lookup_in_arf
Refactor: Make ds_rds_dump_arf_content return oscap_source

This actually grows the size of code a little bit. That's because we
are adding error handling that has been previously missing.
Introduce internal cache to ds_rds_session.

This follows the very same patter as ds_sds_session.