Quick topsort optimizations
Quick topsort optimizations

- topsort of an app does a full analysis of all apps to come up with
  their app-level DAG
- each extra_src_dir has its own analysis run
- each extra_src_dir run is simulated as being an app
- we therefore end up doing a lot of useless analysis for single app
  runs

This patch notes runs with 1 or 0 apps and skips doing the topsort
analysis on them, which speeds things up further.

rebar/rebar3,saleyn/rebar3,tsloughter/rebar3,rebar/rebar3,erlang/rebar3,vladdu/rebar3,lrascao/rebar3