Initial version of libgames-scores

Fake pull request for initial review of libgames-scores.

Hint: scroll down towards the bottom to get to the newer comments.
I don't want to use a bool return value to indicate success or failure, since it's very easy for the caller to ignore.  Instead, declare the function like this:

`public bool add_score (long score_value, Category category) throws Error`

Obvious enough how to catch this error in Mines, but when translated to C, this adds a `GError **` parameter to the end of the function call. Use it like this:

```
GError *error = NULL;
games_scores_context_add_score (my_scores_context, my_score_value, my_category, &error);
if (error != NULL) {
  g_warning ("%s", error->message);
  g_error_free (error);
} else {
  // no error, yay
}
```

If the caller wants to ignore errors, he can pass a `NULL` `GError **` (as opposed to a `NULL` `GError *`. It gets less confusing after you've seen it a few times.)

See https://developer.gnome.org/glib/stable/glib-Error-Reporting.html