Create, and use, a Mixins submodule.

Part of a scheme of cleaning up Compo organisationally.
Create, and use, a Composites submodule.

Another step towards cleaning up Compo.
Create, and use, a Branches submodule.

This continues the scheme of submodularisation from previous commits.
Create, and use, a Finders submodule.

This currently just contains Url.  It will contain more later.
Use #update_parent in spec.
Rename id_function to id_proc.
Make Rubocop happy.
Add Branch#find_url.
Factor out shared examples for URL finder spec.
Sort out specs for #find_url.
Make rubocop happy.
Rename Null composite to Leaf.

This is for consistency with the other composites, which take the
same name as their branches.
Remove ParentTracker#remove_parent.

It was only being used in the constructor for a ParentTracker, and
that instance has been replaced with Parentless.for.
Add Constant.

Constant is a Leaf that stores a constant value, which may be
retrieved via #value.
Prepare version 0.4.0.