MoleculeBuilder: accept the value in build() instead of the constructor.

This is handy, as it makes the type non-generic and allows to delay supplying
the value until the last possible moment, which I will soon need.
Build: use the standard version property instead of an extended one.
Give the generateVersionResource custom out-of-date logic.

Otherwise, it generates the resource once and always thinks it's
up-to-date otherwise.