[biscotti] Implement LinuxComponents.

Expose a component for each mod that:
  1) Implements the ComponentController service.
  2) Provides access to the view via a ViewProvider service.

For components launched by URI, you can launch these using any method
that can work with Fuchsia component URIs.

Ex, using tiles_ctl:
  (fuchsia) $ tiles_ctl start
  (fuchsia) $ tiles_ctl add linux://chromium

Ex, using a session shell:
  # Currently this will create a new runner for each mod, which in turn
  # will boot a new guest (which is probably not what you want).
  (fuchsia) $ sessionctl add_mod linux://chromium

For apps launched in the background (ex: via serial console), you can
bind these views to Fuchsia modules using an empty linux URI.

Ex:
  (linux)   $ /usr/bin/weston-simple-shm&
  (fuchsia) $ tiles_ctl add linux://

Test: launched component both with garcon and from a serial shell.
      Verified these can be correctly handled by both ermine and tiles.
Change-Id: I71d067ef21d87c301ac0cba301ae3b42206d4988
11 files changed