Allow static files in Collections

Allow StaticFiles in Collections alongside Documents. Attempts to fix #2555, #2598. Can also be modified a bit to accommodate #2592. Builds on #2603.

Please test!
Can we split this out into separate methods used by the `#destination` method?

We should also be using `attr_readers` where possible.