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.
Maybe we could add ip related types and functions to nix? It would be nice if I could sanitize things at evaluation time.