On the Complexity of Testing Implications of Functional and Join Dependencies