added setup.py and top-level __init__.py to aid packaging