[virtcon] Make virtcon host a fidl service for sessions.

(Second attempt, previous try at:
I09e66a7c5bc91fb41b6bfb99510b5be1aa609d57

reverted before due to race condition due to async fidl
call).

the virtcon (virtual-console) binary used to provide new sessions
through a convoluted path through device coordinator. This will make it
expose a fidl service directly for clients to request a new session.

This removes device coordinator from the operational loop and will make
it easy for the virtual-console binary to stand on it's own once we have
something else to start it.

It is a little messy due to the virtcon binary using the "port" library
heavily and fidl being built around the async_loop.

Test:
* Booted the following 3 times and verified that all three virtcons
appear and are interactive:
  * vim2
  * eve
  * qemu
  * qemu w/ KVM
* Tested qemu with virtcon.disable=true
* Tested qemu with zircon-only build (zircon/scripts/run-zircon-x64 -b
-g -k).

ZX-3403 # Get virtcon out of the way.

Change-Id: I708dc16a162e87838498afa5a38c4a5a0d9a3cf2
13 files changed
tree: 34a93deee438c87bbfd77e057dbdb3cf7f732401
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. examples/
  7. garnet/
  8. peridot/
  9. products/
  10. scripts/
  11. sdk/
  12. src/
  13. third_party/
  14. tools/
  15. zircon/
  16. .clang-format
  17. .dir-locals.el
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. AUTHORS
  22. BUILD.gn
  23. CODE_OF_CONDUCT.md
  24. CONTRIBUTING.md
  25. LICENSE
  26. OWNERS
  27. PATENTS
  28. README.md
  29. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See the documentation.