Swiss voters narrowly approve immigration limits