Support networks of multiple output layers in get_all_layers

This PR extends `layers.get_all_layers()` and all functions built on top of it to support being seeded with a list of layers as an alternative to being seeded with a single layer instance. This makes it a lot easier to work with networks that have multiple output layers.