The Complexity of Reasoning with Concrete Domains