Adds SparseConstantValue/Type

Permits efficient storage/retrieval of constant values that apply over specific ranges of the domain.
Improves SparseConstantValue and in-memory vs. persisted *Value alignment

Improves SparseConstantValue class - adds the ability for it to obtain it's values for each Span from other AbstractParameterValue classes

Makes alignment between *Value classes backed by InMemoryStorage (numpy) and PersistedStorage (hdf) classes cleaner by moving the alignment logic into the parameter_values module (_cleanse_value)

Fixes tests accordingly

Adds byte-string values to test_array_value_interop
Minor tweaks to Span and NdSpan

Adds __str__ & __repr__ and tweaks tuplize & from_tuple --> from_iterator
Adds value_encoding support to SparseConstantType
Implements TEMPORAL_AGGREGATION type ComplexCoverage

Implements a complex coverage type (ComplexCoverageType.TEMPORAL_AGGREGATION) that facilitates aggregation of multiple coverages along a temporal domain.

See tests in test_complex_coverage for usage details
Fixes incorrect usage of ParameterDictionary
Implements efficient persistence of SparseConstantValue

Implements a new *Storage class "SparsePersistedStorage" facilitating efficient persistence of SparseConstantValue.

Modifications to SparseConstantValue and test classes as necessary; including adding test_sparse_constant_value_interop
Adds configuration of logging for coverage model tests
Adds __getitem__ support to ParameterDictionary

Added purely for convenience when operating at the command-line.

__setitem__ is NOT allowed - use .add_context instead.
Removes unsupported Parameter Types from coverage_model.__init__.py
Adds head_coverage_path attribute

Allows determination of the "head" coverage.  This is always a SimplexCoverage that can be opened for writing.
Fixes bug with SparseConstantValue when assigning *Value to coverage
Adds support for SparsePersistedStorage when loading
Removes brick_list check in SparsePersistedStorage.__setitem__ - unnecessary
Fixes bug in SparseConstantValue when domain is 0
Minor updates; adds remaining "interop" tests

A couple minor updates to ConstantRangeValue

Streamlines the 'interop' tests by making common helper methods

Adds 'interop' tests for remaining ParameterTypes:
* test_constant_value_interop
* test_constant_range_value_interop
* test_boolean_value_interop
* test_record_value_interop
* test_parameter_function_value_interop
* test_vector_value_interop (skipped)
Merge pull request #63 from blazetopher/complex_temporal

Provides ComplexCoverage capabilities for supporting handling of Gaps
Realigns API for View and Complex coverages

Minor realignment of API's for ViewCoverage and ComplexCoverage

Renames ComplexCoverageType.PARAMETRIC --> ComplexCoverageType.PARAMETRIC_STRICT to accomodate the forthcoming (hopefully) ComplexCoverageType.PARAMETRIC_LOOSE
Fixes bug with persistence of 'coverage_type'
Adds ViewCoverage.replace_reference_coverage; tests

ViewCoverage.replace_reference_coverage allows 'replacement' of the underlying reference coverage of a ViewCoverage

Testing for replace_reference_coverage and head_coverage_path