ninja: Use string parameters
ninja: Don't use a stringstream to build an argument list

Streams are expensive to construct (looks like some locale-related
stuff), so use strings instead.
LocalGenerator: Add a string overload for AppendFlags
ninja: Factor out target-level order-only dependencies

This reduces ninja file output even more for projects with lots of
libraries with entangled transitive dependencies. ParaView goes from the
previous 58M to about 45M.
ninja: Factor out custom command order-only depends

This makes WebKitGTK's CMake build.ninja file go from 165M to 11M and
configure/generate in 5 seconds.
Merge topic 'dev/refactor-source-depends-in-ninja'

2583eff6 ninja: Factor out custom command order-only depends
18e478a8 ninja: Factor out target-level order-only dependencies
6fa6bedf LocalGenerator: Add a string overload for AppendFlags
01b79c63 ninja: Don't use a stringstream to build an argument list
3c640891 ninja: Use string parameters