Bounded Verification of Multi-Threaded Programs via Lazy Sequentialization