Folders UI

Initial PR to get a sanity check on the work done so far.

The following items have not been tackled yet:

- Changing the visibility of a folder
- Deleting folder(s) from the system
- Adding existing items to a folder
- Change the URL when switching between the content and folders tabs
- A large part of the tests
I'd rather keep this as is, as we can't easily pass it through as an argument. The function in which it's used is not called directly after we receive it, it's called inside of an event. If we want to pass it in, we'll have to unbind/bind that event, which I think is worse.

Note that this pattern is also used for all other `create` widgets.