Split construct.js to avoid circular references.
Added tests for the "construct" family.