Move from a count of cursors, to storing whether or not a subtree has a cursor.

Calculation of this is going to be slower (of course) as we have to recurse the
children, but this only happens when unsetting a cursor or removing a child item
from a tree that had a cursor.

On the other hand, wasting 4 bytes per ExtraData plus padding is quite a large
concern, and it was also forcing allocation of ExtraData for an entire tree that
had a cursor set.

This also reduces the size of ExtraData from 152 down to 144 bytes through
reordering of members on x86_64.

Change-Id: Iab14ee71c762285bf4448fc86399070263eb118d
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>