[doc] Document exceptions that may be thrown
Reorder method call

This makes the code more consistent by grouping the calls according to the types of the return values.
[fix] Party name was sometimes overwritten

In some cases, the name of the party could be overwritten by a wrong value.

This change fixes the problem by checking if a party name has already be stored or not in order to prevent overwriting of the value.
Make `parseCV()` always return an array

The method now always return an array. In cases where there is no CV data, the returned array contains null values for all the defined keys.
[fix] getCommittees() was returning wrong values

The list of categories (now renamed ‘roles’) was incomplete (not covering all the possible cases) and the implemented system was too naive.

The refactored code now explicitly tries to identify each committee role and throws an exception if it cannot do so.

Moreover, the structure of the returned array has changed. Now, each key is a committee identifier and each value is an array storing the (possibly multiple) roles of the MP in this committee.