Inject MockSystemCollection, fix Library.add tests

A new test was added to ensure the same game could not be added twice.
But because of the SystemCollection dependency, the test implementation was difficult.
The ISystemCollection interface was extracted to fix this.
The MockSystemCollection is quite dumb at the moment, but it is sufficient to simulate a game retrieval.
Also extracted a TestLibraryBuilder to ease the Library instanciation in tests.