I like to have the badges on the front page, but if they're committed in the README then every branch & fork references the badges from master.
This is only true if the README for every branch & fork references the same badge. If you want each branch to show it's status simply update the README for the branches.
Assuming when you say I like to have the badges on the front page
you mean within the README of the default branch in github: You can do this by simply editing the README in your default branch with a list of status badges. All of this is just source control management and leveraging the fact that github renders markdown: You can't really script anything within github itself. It's conceivable that you could automate this for dynamic branches using git hooks, but I'm unaware of anybody who's done this.