Ported "Join attributes by location" from fTools to Processing

The first commit in this pull request is a straight port of the "Vector > Data Management Tools > Join attributes by location" tool from fTools to the Processing toolbox.

The second commit extends the functionality of the tool so that the geometry from the joined layer can be used as output instead of the geometry from the target layer. In the case where the target layer intersects multiple features in the joined layer, a multipart feature is created.

I haven't written a test case for it yet because I haven't figured out how to run the tests in QgisAlgsTest.py.