Cubs land free-agent shortstop Swanson