lua-factory: Load and initialise Lua sources

- Find lua sources in the install path or in the directories specified
  by envvars
- Run source a first time to get the source metadata provided by
  the script's 'source' table
- Check if necessary API keys were provided by application, if
  applicable

https://bugzilla.gnome.org/show_bug.cgi?id=711243
lua-factory: Grilo operations to Lua sources

This is the glue code between Grilo and the Lua sources. The Lua stack
(lua_State) is used to pass the variables to the lua code.

Besides the Grilo operations, the lua source can use the grl_source_init
function to check if it can be successfully loaded or not.

https://bugzilla.gnome.org/show_bug.cgi?id=711243
lua-factory: Lua libraries for sources

Include libraries for lua sources to use.

Core library:
- grl.callback: operation to return the content for user application;
- grl.fetch: A fetch operation that uses GrlNet to fetch web content;
- grl.get_options: Get options provided by application;
- grl.get_requested_keys: List of all requested keys;
- grl.get_media_keys: Current values of media, mainly for resolve op;

Json library:
- grl.json.string_to_table: parser using json-glib that gets a json
 object as string and return its equivalent in a table;

https://bugzilla.gnome.org/show_bug.cgi?id=711243
metrolyrics: Looks up lyrics with metrolyrics.com

If media has Artist and Title keys, look up lyrics on
metrolyrics.com.

https://bugzilla.gnome.org/show_bug.cgi?id=711243
lua-factory: Fix crasher on startup

When the front-end deletes the source during registration, we
need to make sure that we don't consider the source to be
registered successfully.

See also commit 5973947051d6ca789965c92c5c33cf66cadd3f25
which did this for the dmap, and podcasts plugins.

https://bugzilla.gnome.org/show_bug.cgi?id=711243