Housecleaning

These commits clean up the packaging system, list dependencies explicitly, remove warnings from tests, add tasks to Rakefile, and add a proper version file. Hopefully these changes won't be too controversial and it looks like they can be merged in seamlessly.