This backs out the stuff added in Bug 1295978. Ref: BZ 1295978, 1388728
This splits ScriptLoader up the same way Mozilla did with the exception of ScriptRequest due to the fact that ScriptLoader and ScriptRequest are interdependent and would create a circular dependency if split apart when not using unified building.