Combining Deep Learning and Knowledge Representation and Reasoning: Overview, Limitations and Solutions for Real-World Applications