cylc suite global held state: fix trigger, release

At the moment, starting a suite with `cylc run --hold` (or holding a suite mid-run) blocks the release or manual trigger of any task. I think this is because of dde9c3ca, which continuously forces the held state for every 'waiting' task in the main loop. This isn't necessary under a suite hold state because the relevant `hold_suite` command holds all existing tasks - it's just necessary to make sure new tasks are treated properly.

This change makes sure that new tasks have their state recalculated before they are added.

It's possible that other if blocks in the `check_hold_waiting_tasks` method may need similar treatment - I'm thinking of the runahead block specifically.

@hjoliver, please review.