lib: Validate DTDs when parsing BluetoothProfileDescriptorList

The "seq->val.dataseq != NULL" check is also removed from the for()
statement because it should be done after verifying that the data
element is a sequence (inside the "if (SDP_IS_SEQ(...))" block.)
lib: Add comment to BluetoothProfileDescriptorList parsing workaround

Commits 0f5a5a9580084a3c4e0644ef5cd75689aeb5ff40 and
46b3a3d2d00bf70bc57ef0c9ad5542a2271e3350 introduced this workaround.
lib: Validate DTDs when parsing VersionNumberList
unit: Add tests for sdp_get_profile_descs()
unit: Add tests for sdp_get_server_ver()