Instanciate Library in unit test

Library needs an sqlite database, so the empty one in test/fixtures was used.
Library also depends on Languages, which tries (and fails) to access to system directories, making use of fixtures impossible.

The following refactorings were introduced to break the system directories dependency:
- Extract ILanguages interface from Languages class
- Use ILanguages instead of Languages in Library
- Make languages a property of Library (was private attribute)
- Add testing constructor to inject Languages in Library
- Provide a FakeLanguages implementation of ILanguages for testing purpose
- Inject FakeLanguages into Library in test
Test library is initially empty
Ignore vim swap files
Test Library add() and contains()
Extract test doubles to their own directory
Extract set_up_database() and build_test_library()
Use Gee.TestCase
Colorize tests output
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.
Reorganize tests

- Reorganize test subdirectories
- Replace set_up_database() with DatabaseTestCase
- Move support code in LibraryTest to separate files
- Simplify support code inclusion in Makefile
Test new Library and add(game) separately
Test Library creates missing database parent dirs
Test Library creates missing database file/tables
Test DesktopGame.get_reference()
Rename ISystemCollection to IGameFactory

The only method of SystemCollection used by Library is get_game.
The SystemCollection class provides lots more features, but they are not used.
Which means Library doesn't need a full-features SystemCollection.
It just need something to rebuild a game given its URI.
Rename MockSystemCollection to MockGameFactory
Make DesktopGame.get_info() run under test

Introduced fixture helpers.
Introduce sensing variable to test DesktopGame.get_info()
Test common title, title and icon for desktop game info
Ensure get_info() runs with invalid desktop file