Refactor helpers & tests into individual files

no issue

- Split theme helpers into individual files for each
- Do the same for tests
- Have utils to share some things between them
- Move assetHash onto config
Tag input UX improvements

Closes #4105

- Turns the tag icon white when input is focused
- Focuses on the tag inout after deleting a tag

Credit to @novaugust for a PR to this which is rebased into one single commit