New Pythonic pcl.{load,save} functions; PLY format support

This is a pretty massive change to the codebase. It replaces `PointCloud.{from_file,to_file}` with free-standing `load` and `save` functions. To prevent excessive compile times, these functions are defined in a pure Python module, and the code is reorganized into a package to make this possible.