another barrier related leak...
When a MetaBarrier is first created it allocates a backend impl object which does the actual heavy lifting.
Unfortunately, that backend object is never freed.
This commit ensures the implementation gets freed when the barrier object is freed.