prevent reference promotion to owner
The new rules are:
1. if you talloc() you must make preparation to free.
Usually the allocating reference being freed is enough, otherwise
explicitly talloc_free.
2. if you talloc_steal you must make preparation to free.
Usually the stealing reference being freed is enough, otherwise
explicitly talloc_free.
3. if you talloc_reference something you must make preparation to
remove the reference. Usually the reference itself being freed
is enough
4. you only call talloc_free once, on behalf of the allocator
or the stealer. If you want to remove a reference, then use
talloc_unreference
5. A function that calls talloc_free on an object has by definition
a passing-of-ownership in it's operation, and callers of the
function ought to be aware of this.
6. the destructor is called when the object is freed, not when
you call talloc_free. References might keep it alive for quite a while.
Signed-off-by: Sam Liddicott <sam@liddicott.com>