Start of APISpec class

Add tests and implementation of APIspec#definition
Add plugin setup method
Use hasattr rather than EAFP

because something in `setup` may raise an AttributeError that
shouldn't be caught
Add APISpec#register_definition_helper
Use definition helpers in APISpec#definition
Don't update definition with kwargs

otherwise, definition_helpers' kwargs will be put into the return
value
Store 'enum' property; reorganize tests
Depend on mock
Title is optional
Can pass plugins to constructor; rename 'name' param -> 'path'
Add smore.ext.marshmallow
Merge branch 'apispec' into dev