Improve performance in DartCodeDb

Path a1 = new Path("a");
Path a2 = new Path("a");

a1 == a2 // false

Because of this the cache is never used. Now we use a String as key
which represent the full path as a String.