Add the option to ignore _NET_WM_DESKTOP

This fix a longstanding issue where some rare clients would ignore
awful.rule / tyrannical would set a tag, only to have it overwritten
later by this request. One example of clients behaving this way is
"Kate" the KDE text editor. The "choose session" window would behave
normally, but the main window will display in the wrong tag. Some
prints show that it first behave normally, but then is moved to the
wrong tag. This configuration variable can be set to "false" after
the last "not startup" client is managed by awesome. As I want
my tag manager (in my case, Tyrannical) to be a tyran and ignore
external focus/desktop requests, being able to disable this code
path make sense.

As for the implementation, it is a little cheap to use metatables for
that. It is currently how awesome does it, so it is how I will do it
for now.

Note:
Doing that, I saw that something still try to do capi.awesome.fg and capi.awesome.bg. I am not sure if it is my config or some other leftover from 3.4

Note2:
Unless you have serious concerns about segfaults, please just merge this pull as is. I will replace the way it is done in a future pull (force all capi objects to have a lua metatable, sodoing c.foo = "bar" will finally work at long last). I am aware I did not update the documentation, this is on purpose, this is an hidden API for now. It fix a bug and don't break the API at all.

Thanks, have a good week!