strStr

First working implementation.

Robustness notes:
1. string being null is different from string being empty. Just like in
mathematics, the set that describes the language of a Turing Machine
might be "empty" or  "contains a string of 0 length" , both cases should
both be carefully considered.

2. What if the source does not have target string ? can we make sure to
return -1 ?

3. What if the target string have multiple occurrences in source string
? Can we make sure to return the index of the first one ?

4. While searching, can we correctly return the desired output,
regardless of the position of target string in source ?