'IOProcessor.__init__' defaults tests

Add tests for 'IOProcessor.__init__' default-stashing behavior.

Move coercion test types and custom coercion function from test
methods to module-level namespace.

Add test to confirm that when no 'iospec' arguments are provided and
'unlimited=True', verification passes.
'IOProcessor.__init__' defaults

Implement 'IOProcessor' default 'required', 'optional', 'unlimited'
values passed through '__init__' method.
Parameterize tests

Parameterize '__init__ defaults' tests. Apply parameterized tests to
IOManager.
'IOManager.__init__' defaults

Implement 'IOManager.__init__' defaults-stashing behavior.

All tests pass.
Subclass default tests

Add tests to confirm that 'coercion_functions', 'typecheck_functions'
values provided in subclass definitions are passed as defaults.
Parameterize tests

Parameterize 'subclass defaults' tests. Apply to both 'verification'
and 'coercion' custom functions.
'IOProcessor' subclass defaults

Implement 'IOProcessor' subclass defaults.
IOManager subclass defaults

Implement 'IOManager' subclass defaults behavior.
Refactor tests: new-style iospec assignment

Refactor tests. Move all 'iospec' arguments ('required', 'optional',
'unlimited) from the actual 'verify' and 'coerce' methods to the
'IOProcessor' constructor. This style of calling is already enabled
by the 'stash defaults' behavior, but the old style of calling will
be deprecated.
New-style iospec assignment

'iospec' values ('required', 'optional', 'unlimited') are now assigned
throuth the constructor ('__init__') of 'IOProcessor', and cannot be
passed to 'verify' or 'coerce' methods.

Adjust 'json_tools' functions to use new-style 'iospec' assignment.

Debug tests.
Refactor 'IOManager' tests - new-style iospec

Fix 'IOManager' tests to use new-style 'iospec' assignment.
Refactor 'IOManager.__init__' parameters

Refactor 'IOManager.__init__' method. Before, there was a very
complicated precedence scheme employing a lot of special parameter
names. Now, all keyword arguments intended for 'input_processor' are
passed through the 'input' dictionary argument, and the same for
'output_processor' and 'output'.

Alter tests to use new 'IOManager.__init__' parameters.
Refactor 'process_...' methods

Refactor 'IOManager' 'process_input', 'process_output' methods to
conform to new way of calling 'IOProcess' methods with only 'iovalue'
argument.

Debug tests.
Remove 'stash kwargs' tests

Remove obsolete tests. These tests confirmed that constructor
arguments were being 'stashed' for later calls to 'verify' and
'coerce'. Now, IOProcessor is intstantiated immediately in the
constructor, so 'stashing' is no longer necessary.
Fix 'IOManager.__init__'

Fix 'IOManager.__init__' to use correct precedence for various
class-attribute defaults and constructor arguments.

Fix 'ClassAttributeDefaults' tests to work with new constructor
parameters.

Fix 'test_iospec_from_callable' tests.

All tests pass.
Merge branch 'dev/default-values' into develop
Prepare release v0.3.1

Update version number.

Update changelog.

Update README.md.
Merge branch 'release-0.3.1'