NinjaTrader can do almost exactly what you are asking for. In fact, it'll even run the Bid / Ask changes as well. The only catch that I can see is that you'll need to set the Preferences to record the market data, let it run to collect, then you can play it back at will. I don't know if you can run external tick data through the Market Replay.