Keep track of RequireJS relations on JavaScript assets to avoid UMD pattern problems in non-require cases

To avoid populating UMD pattern modules outgoing RequireJS define statements when populating JavaScript assets I have added a new `isRequired` boolean that is set in the population traversal of Html and JavaScript assets.

Closes #137 

I haven't solved the problem where the same UMD module is loaded both through normal script load _and_ through RequireJS. I would expect such a setup to throw run time errors anyway, so I have not deemed is necessary to investigate further into this anti pattern.

This should clear up a whole lot of problems people have in real life code when trying to run assetgraph out of the box.