gen: reduce the amount of includes needed when rtt_scripting is disabled
don't generate templates for data sources that are not used by the interface code
gen: cleanup header handling

So far, we were generating a Types.hpp file that contains absolute
paths to all loaded headers (as well as imported typekits), and use
this header everywhere. It actually has a big performance effect on
compilation times, as well as (obviously) forcing the recompilation
of all orogen files as soon as one header is changed.

This commit implements something that got prepared for a while: generate
code that includes only the headers that are needed
gen: properly resolve orogen_include for templates

The template does not have a precise 'definition location'. GCCXML
resolves it to the template definition itself.

This commit makes sure that the orogen_include metadata information
of a given type contains the includes of the used type as well.
gen: get rid of Types.hpp in OpaqueConvertions* and Opaque*
gen: fix detection of changed source headers
gen: normalize typekit-specific header installation to <typekit.name>/typekit

This will remove the constraint that libraries cannot use Types.hpp
as a header name
remove one more inclusion of Types.hpp
remove hardcoded full path for orogen in the regen target
gen: fix basic numeric type availability in generated m-types headers

We use boost's cstdint typedefs in the generated code, so include
the relevant header.
gen: fix set of included convertion functions in OpaqueConvertions

We need to include the files that provide the convertions for the
type's elements, not the type itself.
gen: fix name of :include option in opaque type handling

Typelib expects :include, not :includes as the set of include
paths
only use toplevel includes to import particular types

We actually do not know which headers can be included and which
are not. The only ones for which we *do* know are the ones that
the user gave us.
gen: properly detect preprocessing errors
gen: fix handling of include chain detection

The current code was broken as it was assuming that the last
toplevel file seen is the current toplevel file. This fails
in this situation

# "some toplevel file"
# "some other toplevel file"
# "return from the other toplevel file"
gen: having no includes for an opaque is a situation that can happen. Tell the user how to fix it
gen: ensure backward compatibility with already existing typekits that have opaques
OpaqueTypes.hpp needs to include all opaques, not only the ones that do not have a user part
gen: the forward needed for an array is the type itself
gen: fix ambiguous generated guards in m-types