Neural networks for abstraction and reasoning: Towards broad generalization in machines