design: simplify how luxid determins job termination

With the job files, we already have designated files per job. So
there is no need to additionally signal through a socket regular
job termination. This design also has the advantage that it is
already implemented and working in current luxid.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>
RPCs: add docstrings for instance_os_add

This RPC's instance_osp input has a non-obvious, non documented
type. This patch adds documentation to this RPC.
OpCodes test: fix argument order (expected/but got)
algo: add GetRepeatedKeys

We do not want public, private and secret parameters to have
overlapping keys. This function implements this check.
Add Private types to Python, Haskell

This commit adds the private containers to Python and Haskell.
serializer: emit and encode Private values

For inbound data the simplest, safest thing to do is to traverse all
JSON right after encoding and search for private parameters by key.

This ensures that all consumers of this data get Private values
transparently and consistently; the serializing methods don't have to
worry about trying to understand what kind of JSON it is receiving.
It also minimizes the surface area of codebase that is exposed to the
values directly.

The downside is it adds a ~5% time overhead to all JSON decoding as
measured through:

$ time make hs-test-py_compat_types

As far as encoding to JSON is concerned, the serializer will redact
Private values unless told to do so explicitly (e.g., for tests).
Add private OS parameters to the cluster and instance configuration

This updates objects, constructors and mocks for Instance and Cluster
objects in Python and Haskell.
CLI: add parameters for private and secret OS parameters

Define the CLI parameters for private and OS parameters.
OpCodes: modify InstanceSetParams for private parameters

Modify InstanceSetParams to accept and process private parameters.
OpCodes: modify ClusterSetParams for private parameters

Modify ClusterSetParams to accept and process private parameters.
OpCodes: modify InstanceCreate for private, secret parameters

Modify InstanceCreate to accept process private and secret parameters
OpCodes: modify InstanceReinstall for private, secret parameters

Modify InstanceReinstall to accept and process private and secret
parameters
luxid: give stern warnings about debug mode

Luxid as it is can leak private and secret parameters by logging
all requests as they arrive, before any preprocessing is done.

Warn the user stern warnings about this.
SimpleFillOS: add unit tests for OS parameter merging

Adds tests to ensure OS parameters are dealt with consistently.
NEWS: update with public and private parameters

Also warn about debug mode.