Compile clients without the YCP::Clients namespace

So far, classes of compiled clients were put into the YCP::Clients
namespace. This is not really needed as their names already contain a
"Client" suffix, which is enough to prevent conflicts with other thing
in the main YCP namespace.

This commit removes the compilation into the YCP::Clients namespace.
s/:include_file/:as_include_file/ when creating AST::YCP::Context

This was probably a typo.
Pass options[:as_include_file] to the parser

Originally I thought I'll deal with special compilation of includes on
the YCP AST level. Now I think that I'll be able to deal with include
files completely on the parser level. This means the information whether
we are compiling an include file is needed there. This commit adds it.
Compile include files specially

Parts of this commit are based on a patch by Josef Reidinger.
Optionally compile |include| statements as |YCP.include|

Until now we let ycpc to inline include files for us. This commit
introduces capability to remove inlined include files code and instead
compile the |include| statements as |YCP.include|.

This capability is hidden behind a command-line option
(--dont-inline-include-files), but this is just temporary. Once we make
sure this works properly and the Ruby bindings implement |YCP.include|,
we will probably remove the option and just always inline.

Note the uninlining works only for toplevel includes. The plan is to
make Y2R detect non-toplevel includes later and fix these manually.

Parts of this commit are based on a patch by Josef Reidinger.
Handle skipped |include| statements correctly

The <include skipped="1" name="..."> elements are now skipped. They are
generated when the same file is included multiple times and there is no
corresponding closing <filename> element generated for them (which
caused problems because Y2R code didn't anticipate that).
Fix <include> and <filename> handling with --extract-file

Before this commit, all AST nodes representing <include> and <filename>
elements were discarded when --extract-file was used. This breaks
--dont-inline-include-files because it relies on these nodes to detect
include file boundaries. This manifested by inlining nested includes
when both --extract-file (on the outer include) and
--dont-inline-include-files were used.

This commit fixes the code to keep the AST nodes which are part of the
extracted statements intact.

Based on a patch by Josef Reidinger.
Delay running module initialization code

The module initialization code (or files included by it) may require the
module global variable to be available.
Use correct filename when --extract-file is used

Based on a patch by Josef Reidinger.
Compile includes extracted from a module correctly

Before this commit, include files extracted using --extract-file from
modules were compiled as modules (ModuleBlock in the AST), not as
includes (IncludeBlock in the AST). I simply forgot to add a condition
for this case into the parser. This commit fixes the error.