1. Combine beans and 6 cups water in a large pot. Bring to a boil, cover and remove from heat. Let stand 1 hour (or soak beans in cold water overnight). Drain and rinse.
2. Combine onion and bacon in a large nonstick skillet over moderate heat; cook until onion is tender and bacon is crisp, 6 to 8 minutes. Drain fat.
3. Combine onion-bacon mixture and beans in a 4- to 5-quart slow cooker. Place pork over bean mixture. Stir together cider, 1-1/2 cups water, the molasses, sugar, mustard and bay leaf in a medium bowl until combined well; pour over pork.
4. Cover and cook 12 to 13 hours on low or 6 to 7 hours on high. Add tomatoes 30 minutes before end of cooking time.
5. Transfer pork to a cutting board and, using 2 forks, shred. Strain juice from beans into a large bowl (discard bay leaf). Skim fat from juices; pour 1 cup juices over pork and toss to coat. Pour just enough juice back into beans until soupy, 2 to 3 cups (discard remaining juices), then stir in salt.