Asymmetric synthesis of (S)-(+)-carnitine and analogs