Make sure to fire TargetFinished event in any result (namely, internal error).

That possible mismatch caused invalid Stack operation in ConsoleLogger.
Give Project FullPath a unique name for each test so that error outputs could be attributed.
Any errors inside BuildEngine build could be logged by loggers.

Some exceptions _outside_ that can be still on stderr, but they are
much less now.
LoadProject() should add the loaded project to the collection.
Make sure to use BuildNodeManager in any build run, and corrected error handling to somewhat better state.

Also, now EndBuild() won't finish until all callbacks are done.
ProjectTaskOutputPropertyInstance was not appropriately created.
disable parallel build test because it is ConsoleLogger which does not work fine.
Improve item evaluation whitespace handling.
implement "skip target due to previous success" feature.
While converting string to array, trim each element before converting.

ResolveAssemblyReferences should work now.
Make sure to raise matching TaskFinished event.
Empty items could still slipped in when converting string to array.

ResolveAssemblyReferences was hit with empty SearchPaths because of this.
Fixed Task output item string result creator and fixed test expectation.

Item output task parameters don't show up on TargetResult Items. Instead
those items can be retrieved via ProjectInstance after builds.
ConsoleLogger is now parallel build ready.
Enable parallel build test, with successful command, now that ConsoleLogger is now parallel ready.
Fix some default properties: OutputType has default to Exe. AssemblyName defaults to the project file name, not RootNamespace.
Target items related fixes - give diagnostic outputs for initial items. Evaluate item condition.
Some parser error message got source string for Condition evaluation.
ProjectCollection.DefaultToolsVersion is settable.
Add missing exception types.