Updated package to support adding data packages to DataONE.

Also refactored a few things to make most functionality accessible outside of VisTrails as well (see tests in utils.py and data_package.py).

__init__.py:
  - moved configuration to its own module

config.py:
  - new module, more fields, fall back to a non-VisTrails version of the configuration object if using outside of VisTrails

data_package.py:
  - converted from the DataONE CLI to get rid of the session (use the config instead) and fixed a couple of bugs

identifiers.py:
  - bumped version number

init.py:
  - moved globals to config
  - get_cn_url: new method
  - get_mn_url: new method
  - D1GetObject._input_ports: add member node for fallback if cn can't find data
  - D1GetObject.compute: use utils for more of the code
  - D1GetMetadata.get_metadata: use utils method
  - D1GetData.get_data: new method
  - D1GetData.compute: use get_data
  - D1PutObject: new abstract module for D1PutData and D1PutPackage, use utils for most of the work here
  - D1PutData: use D1PutObject as base class, use utils for metadata
  - D1DataObject: new module, in-memory data object construct
  - D1Package: new module, in-memory data package construct
  - D1PutPackage: new module, use D1PutObject with create_object and update_object methods
  - D1GetPackage: new module stub
  - _modules: add D1PutObject, D1DataObject, D1Package, D1PutPackage
  - initialize: just store everything in configuration

utils.py:
  - converted from the DataONE CLI to get rid of the session, some code from cli_client.py, cli_util.py, and added new convenience methods
  - create_system_metadata allows user to specify any/all of system_metadata to override defaults
  - create_sysmeta_from_path uses create_system_metadata also allowing the customization