ENH Use smart_open instead of hardcoded bz2

This is a more flexible system for saving/loading compressed formats