check for number of available sources when determining where to apply patches

This fixes a hard crash when patch files are listed with an empty list of source files:

```
ERROR: test_patch_step (__main__.EasyBlockTest)
Test patch step.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/kehoste/work/easybuild-framework/test/framework/easyblock.py", line 529, in test_patch_step
    self.assertErrorRegex(EasyBuildError, '.*', eb.patch_step)
  File "test/framework/utilities.py", line 61, in assertErrorRegex
    call(*args, **kwargs)
  File "easybuild/framework/easyblock.py", line 1275, in patch_step
    beginpath = self.src[srcind]['finalpath']
IndexError: list index out of range
```
reinventing `try/except IndexError` in a bad way? (esp if someone passes `source = -1`, which is entirely valid)