New modules

Add 'test_view_callable' module.

Add 'view_callable' module, with empty 'simple_view' definition.
'simple_view' tests

Add tests for 'simple_view' decorator.
Implement 'simple_view'

Implement 'simple_view' decorator.

All tests pass.
Refactor tests

Add copyright notice where it was previously missing.

Add empty 'BasicViewCallable, 'SimpleViewCallable',
'FunctionViewCallable' classes.

Add tests to confirm that 'simple_view' is a subclass of
BasicViewCallable.

Make 'SimpleViewCallable', 'FunctionViewCallable' subclasses of
'BaseViewCallable'.

Add separate 'TestBaseViewCallable' test case. This confirms basic
behavior of 'BaseViewCallable': it works as a decorator with or without
decorator kwargs.

Add test to confirm that passing a non-callable to 'BaseViewCallable'
raises an appropriate error.
Implement 'BaseViewCallable'

Add '__init__', '__call__', 'set_wrapped' methods to 'BaseViewCallable'
class. This implements the basic 'decorator' logic.
'SimpleViewCallable.view_call'

Add 'view_call' to 'SimpleViewCallable' class.

All tests pass.
'FunctionViewCallable' tests

Add tests to confirm that FunctionViewCallable receives keyword
arguments from 'POST', 'GET', and 'matchdict'.

Add test to confirm that SimpleViewCallable's return value is returned
unchanged.

Add tests to confirm that the 'request' kwarg sources override each
other as expected.

Fix 'BaseViewCallable.__call__' to correctly return the return value of
'view_call'.

Add tests for FunctionViewCallable. Confirm that 'json_body' kwargs are
passed through correctly.

Add 'BasicBehaviorTest' class to confirm common behaviors for the view
callable classes.

Add custom error to confirm that wrapped callable is successfully being
called. Many tests could pass simply by not calling the wrapped
callable.
Implement 'FunctionViewCallable'

'FunctionViewCallable.view_call' combines kwargs from request attribute
dictionaries in a specific preference order.

Add test to confirm that calling '_call' with positional arguments
raises an error.

Implement 'FunctionViewCallable._call' method.

Debug tests.

Move 'test_apitree' to 'test_tree_scan'.
Dependencies

Alter 'install_requires' directive in 'setup.py'. Remove 'pyramid', add
'ioprocess'. It turns out that all of the code for this module can run
independent of the actual 'pyramid' distribution.
'FunctionViewCallable' parent class

'FunctionViewCallable' now a subclass of 'BaseViewCallable' instead of
'SimpleViewCallable'.
Empty 'ApiViewCallable' class

Add empty 'ApiViewCallable' class and relevant import statements.
'APIViewCallable' input structure tests

Add tests to confirm IOProcessor behavior for input to APIViewCallable.
Confirm that the 'process' method checks the structure of the input
values. Confirm that view callable definition and decorator interact in
the correct way.

Rename 'WrappedCallableWasCalledError' to 'WrappedCallableSuccessError'.

Debug tests.
'APIViewCallable' coercion tests

Add tests to confirm 'ioprocess' input and output type coercion behaves
as expected for 'APIViewCallable'.

Add test to confirm that special keyword arguments for input/output
processing are not included in the 'view_kwargs' dictionary.
'iomanager'

Replace 'ioprocess' with 'iomanager' everywhere.
Refactor tests

Refactor input 'structure' verify tests.
Input, output typecheck tests

Add tests to confirm type-checking when using '_call' for input and
output.
Parameterize 'verify' tests

Parameterize tests that confirm 'IOManager.verify' is being called for
input and output. Apply to both '_call' and 'wrapped_call' methods.
Coercion tests

Remove test for coercion with '_call' method. Now, only 'wrapped_call'
will do coercion.
'special_kwargs' tests

Add tests to confirm that the 'FunctionViewCallable.special_kwargs'
method works as expected.
Implement 'special_kwargs'

Implement 'FunctionViewCallable.special_kwargs' method.

Debug tests.