Fix ensure => absent with path => set.

The current code doesn't correctly account for an absent with a
path set, incorrectly trying to remove $name instead.  Fixing this
raised the issue that fragments left with no ensure will fail when
absent is set as the fragdir is deleted.

As a workaround for this we check the `ensure` parameter from the
concat{} resource with getparam() and then pass that to the fragment
if no specific ensure was passed in.  This effectively ensures
fragments inherit their parents ensure status.
Fix the tests by switching to stdlib 4.x instead of 3.x.

getparam() unfortunately only arrived in 4.x, so switch.
Merge pull request #134 from apenney/fix-absent

Fix ensure => absent with path => set.