nixos/network-interfaces: Implement the ability to add arbitrary routes

This is currently a work in progress as supporting default routes is probably not quite working. I'd appreciate testers when this code actually evaluates.
Is this really needed? Nix is not a general-purpose language, so doing stuff like parsing IP addresses is likely to be quite slow.