Do not emit target twice
Compiler and command support `precompiled_headers` flag
Compiler.BuildObject support a `Target` as a source.
Add `objects` attribute Compiler.LinkCommand.
Fix dest path default value (relative to build dir as a target).
Add some debug.
Improve generate_precompiled_header (and add force_include argument):

 * Create the copy of source header into the build dir target
 * Create the precompiled header target with the copy
 * Add force_include and source attributes to the pch target
 * Return the pch target
Use compiler default precompiled headers
Add `precompiled_header` to pch command keywords