Lookup prerequisites with same name outside of scope instead of matching self

`Task#lookup_prerequisite` finds self if looking up a prerequisite outside of the namespace with the same task name. Behavior in this case is debatable but at least there should be a way to specify to lookup the task outside of the scope instead of ending the chain with a circular reference. If this default behavior I have implemented looks good this solves the problem by convention. Otherwise notation will need to be introduced such as

```ruby
task :b
namespace "a" do
  task :b => "global:b"
end
```

Where global signifies to lookup outside the namespace.