Just to avoid wasting time trying something that’s not feasible, is it possible to significantly change the layout of pages using themes? Specifically, we would like to change the linespacing and remove the user badges from the topic listing, and widen the horizontal space used when viewing the actual posts. Is this a simple matter of CSS tweaking, or are we going to collide with things that are more hard coded?
Yes, the Discourse theme system allows you to pretty much customize everything on the client-side, nothing is hardcoded.
We have a couple of guides that can help you get started
and a collection of open source themes and components for you to look at in the #theme category
As for the specifics in your post
Line spacing can be changed easily with CSS
I’m not sure I understand what you’re referring to, but you can add or remove elements with a theme / component. You can also hide elements with CSS.
This is doable with CSS but you’d need to be aware of the effects your changes might have on the timeline (the scrollbar on the right-side of topics). That said, this is all just CSS and you can make whatever changes you want if you know what you’re doing.