[FEATURE] ProteinProphetAdapter

TPP PeptideProphet and ProteinProphet adapter. This version is working for XTandemAdapter idXML results. TPP/xinteract program will do the PeptideProphet analysis on the peptideID results and TPP/ProteinProphet will do the protein inference. 
Tests are added into the SEARCHENGINES folder.
This seems quite strange to me, looking at the implementation of Metavalue I dont think that this is correct behavior. E.g. if `metaValueExists` returns false, then it cannot contain the metavalue otherwise there is something seriously wrong. Are you saying that this has happened to you in the OpenMS code? If so, I would be quite curious to see how this possibly could happen. If you use `setMetaValue` then it _needs_ to be registered, I dont see how it is possible to have the metavalue but not being registered?? 

Basically `MetaInfoInterface::setMetaValue` calls `MetaInfo::setValue` which calls `MetaInfoRegistry::getIndex` in all cases. Looking at https://github.com/OpenMS/OpenMS/blob/develop/src/openms/source/METADATA/MetaInfoRegistry.cpp#L231 the name gets then registered if it was not found, so to me it seems that it must be registered if it is present?
Maybe @aiche or @cbielow could comment here, am I missing something here?

I do believe that it can happen to have a DataValue::EMPTY as Metavalue which will produce a `metaValueExists` to be true while actually no meta-value is present. This could be captured by
```
if (it->metaValueExists("XTandem_score") && it->getMetaValue("XTandem_score") != DataValue::EMPTY)
```