Handle some errors better

Also, use cargo_try in more places