first cut at a dedicated pcd reader/writer

Replace the preliminary PCD implementation in drivers.text.writer. More information can be found at http://pointclouds.org/documentation/tutorials/pcd_file_format.php.

This new version has the flexibility of reading and writing PCD formatted point clouds. Furthermore, one can now read any of the PCD storage types (ASCII, binary, and binary compressed), and write either ASCII or binary compressed.

For now, we bite the bullet and subtract minimum values in XYZ dimensions to guard against rounding errors when converting from doubles (PDAL) to float (PCD).