addition of python functions for pairwise local and global alignment 

Ready for review for merge. I'll likely make some behind-the-scenes changes in the future, like possibly creating an ``Aligner`` class, but that shouldn't affect interface so I'd like to do in a separate PR. The goal of this one is to get usable functionality in place. @ebolyen, it'd be good to have you review the interface for consistency with the SSW code. Also, I think we'll likely end up with a merge conflict in the docs in ``alignment/__init__.py``, but that should be easy to address. 

~~**NOT READY FOR MERGE**~~

Yes, see the description here:

https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt

If a parameter can take a fixed set of values (e.g. `method='foo'` or `method='bar'`), you should use `{'foo', 'bar'}`, with the parameter's default value listed first. Adding `, optional` in this case is redundant. However, for optional parameters without a fixed set of values, you should add `, optional`.

I don't think this applies to parameters that can be multiple types -- I've seen those appear comma-separated or separated by "or", e.g. `str or BiologicalSequence`. Not sure if there's a standard for this case, but should avoid enclosing in braces.