Make it possible to support multiple categories

@ikeough 

Before this submission, test cases which belong to multiple categories are only attributed to the first category. It seems the order of the attributes obtained from reflection is not strictly following what are defined in the source code. As a result, the test case MAGN_2576 is attributed to the Failure category in the debug build and is not attributed to the Failure category in the release build. This is causing some confusion and instability. This submission will attribute every test case to all the categories it belong to.