Use Property for #inject implementation

This switches the #inject implementation to use a Property rather than the original Inject implementation. This did mean removing one piece of functionality as Property does not have an #on_value hook. I would actually vote for not having callbacks on Property anyway as a Behaviour in FRP is really a time -> value function and so doesn't have any discrete changes. Giving it a callback hook muddles all this up (discrete changes are what we have event streams for). This is probably worth a more in depth discussion though :smile:.

I also made some changes to the tests to remove some of the #inject uses so we're not mixing Properties into too many of the Stream tests.