Add a set of unit test for $compose, which also exposed some bugs. Now makes less use of $scope.$watch property and just triggers full digests instead.