Fixed #3142 Added server-side duplicate order protection

Uses WP Transients to prevent duplicate order processing by generating a session order processing lock. The second process (the duplicate) waits for the transient to clear or for a timeout before redirecting to checkout.

An additional check will look for a completed order from another process and redirect to thanks for successful orders (in the same session but from a different process).