feat($scope): add `$watchOnce` and `$watchCollectionOnce`