Join column index names

@Ocramius recommended I open this up to discuss the issue I am seeing.

I am trying to explicitly name the index on a column which is used in a join.  I've attempted to add two functional tests in this PR to demonstrate what I am seeing. Please forgive me if these tests are not correctly, this is the first time I've attempted to submit a PR like this.

There are two situations I am encountering...

First, I explicitly name the index in the ```@Table``` annotation on the column used in the join - but the SQL generated from ```SchemaTool``` appears to be a random hash.

Second, when I have an existing database table with an existing index and it's named properly (in this example, idx_maker_id) and then I run ```SchemaTool->updateSchema()``` it drops the index with the proper name and creates a new randomly hashed name.

Is there a different way of accomplishing what I am trying to do here, or is this a bug?

Thanks for your help and assistance!
@deeky666 I just want to make sure I follow, please forgive me if I'm restating the obvious.

The automatically generated index for the join is processed first, causing this line https://github.com/doctrine/dbal/blob/master/lib/Doctrine/DBAL/Schema/Table.php#L494 to return true on the ```@Table``` index, thus skipping over the one I've written by hand, correct?

This makes sense to me for the ```createSchema()``` issue, but I'm still puzzled as to why Doctrine wants to regenerate the existing index on the table in ```updateSchema()```  I would have thought the same line and ultimately this https://github.com/doctrine/dbal/blob/master/lib/Doctrine/DBAL/Schema/Index.php#L201 would have returned true and skipping over generating a new index for it.