http: renaming in start function
topo: do not use switch state for host discovery

There may be multiple hosts connected to a port, especially in the case
of a wifi network. Instead of using the list of ports that the switch
discovery module is waiting to discover, see if the host exists in the
topology. If it's in there, don't add it again. If it's not in there,
add it.
eval: Move LocalCompiler.eval to Semantics.eval_pipes

This function has nothing to do with the LocalCompiler. It is in fact a
thin wrapper around Semantics.eval, so move it into that module.
eval: Store switch policies instead of Local.t

Conflicts:
	async/Async_NetKAT_Controller.ml
topo: Only discover hosts on pending connections

This is a follow-up to e10798f, which stopped reading and writing from
the switch discovery state when discovering hosts. While host discovery
should not modify the pending port list, it should read from it and only
disocover hosts on pending ports, i.e., ports where a managed switch has
not yet been discovered. Discovering a host on such a port should not
take it down.

Host and switch discovery are conflating their state. This would be
separated in the future, but for now with the assumption that the entire
network is managed, this shold work fine.

Note that if you bridge wifi switches, this will probably break down as
well.
api: add create_from_string app constructor
optimize-bug: fix bug mk_or

This was a copypasta bug identified in the http branch (commit
0aeff4a39ee) but the fix was engangled with a bunch of other changes.
Merge pull request #273 from frenetic-lang/demo-fixes

Demo Changes