TEIIDDES-1697: Replace project loop-throughs with utility methods

* DotProjectUtils provides a helpful method for returning the collection of
  open modelling projects. Instead of code iterating through all projects
  and determining the same result, delegate to the utility method.

* DotProjectUtils
 * Throw single Exception rather than the singular versions as it then
   avoids the need for client code to depend on the jdom plugin.
 * Migrate hasNature method from ModelerCore since this is a better logical
   home for it.

* [Fake]ModelWorkspace[Impl,Info]
 * Remove the getNonModellingResources method since it is performant
   expensive and ultimately pointless
TEIIDDES-1697: Fixes tests as a consequence of further use of DotProjectUtils

* MockFileResource
* MockProject
 * Improve the sanity of these classes and implement enough methods for
   a fake project to be returned by any MockFileResource
 * By default, a temp file is instantiated (although not actually created)
   to represent the .project file and the project is set to both open and
   accessible.

* TestDotProjectUtil
 * Due to making the mock project accessible and open, a different path is
   taken by the code to check for the project's nature. Thus, the test
   must be slightly modified to correctly mirror the changes.
TEIIDDES-1697: Refactor the WorkspaceResourceFinderUtil class

* WorkspaceResourceFinderUtil
 * Returns collections of resources rather than arrays since most uses
   simply iterate over the collection
 * Ensures collections have been genericised
 * Fixes missing comments
 * Rather than searching for all possible resources in the workspace,
  ** If a resource is given then use its project as a search limiter;
  ** With no resource paramater, search only open modelling projects and
     to avoid looping twice use a visitor where possible to analyse the
     resources as they are found
 * Improves readability by avoiding large if-clauses
 * Combines 2 versions of getResourcesThatUse (singular and recursive) into
   1 method with a depth parameter
Merge pull request #148 from phantomjinx/performance-bottlenecks

Performance bottlenecks when building projects