fix deferred provider factories

previously app->make would be called twice initially, the results
of app->make('foo') in the tests would be 2,3,4 instead of 1,2,3