Prototype string functions
This is a prototype for functions to work with series of strings. There's a lot more to be done if we like the approach, but I wanted to check in before I spent too much time on it.

You can easily map a function onto a series:

```
In [4]: s = Series(["hi","hoot", "far"])

In [5]: strings.startswith(s, "h")
Out[5]: 
0   True
1   True
2   False
```

You can also use other series to give arguments; they're not reindexed to the main series yet, but this is NaN aware:

```
In [6]: s = Series(["hi","hoot", "far", np.nan])

In [7]: strings.search_re(s, "h(.*)", groups=Series([0,1,1,0]))
Out[7]: 
0    hi
1    oot
2    NaN
3    NaN
```

I'll go ahead and merge this in. I'm going to move the strings modules to the `tools` subdir, I think. We'll want to start building a test suite, of course, to permit refactoring
 OK, thanks. I wasn't actually expecting this to get merged as is. I'll find time to improve on it.
 Does little harm-- I want to hack on it too sometime in the next few weeks
