Controlling the False Discovery Rate via Knockoffs