Abstracting input, not overloading ecs

By bloating it with input logic and whatnot. Right now, a receiver of
game-layer input messages directly changes component values. This is
something that can be easily scripted, I think.