cache ProjectProvider

fixed: ProjectFactory is not exported to MEF
replace Async.Parallel with Async.Array.map everywhere

add a comment