Typed file-embed
In this PR I split Data.FileEmbed into three modules: Typed, RelativePath, and Injection. The intent is that RelativePath contains makeRelativeToProject and makeRelativeToLocationPredicate, Injection contains all the functions to do with injecting data, and Typed contains typed template haskell function variants of the original Data.FileEmbed module. These are all then exported from Data.FileEmbed, and in the case of Typed turned into non-typed variants to maintain the existing API.
~~As part of this I also get rid of some unused, incredibly simple utility functions. These can be restored easily if need be.~~ These have been restored.
~~Were it not for the removed functions above, I believe this wouldn't be a breaking change - the API is maintained. Increasing the lower bounds means that older projects won't even try and obtain this version, meaning that we're free to use modern template-haskell.~~
To add the relevant warnings for internals functions, the minimum GHC we're permitted is 9.8
I've had a brief search of hackage, and found at least one place where getDir is used, in conjunction with bsToExp: graphql-client uses both for some reason. As a result I'll change reinstate the functions I removed, but add a warning to them that they'll be deprecated/unexported at some point, since really they should just be internal.