Add set of new core functions

Add set of new core functions to the stdlib.

Moved the auto-import code from compile_expression to
HySymbol so that "even?' in this style expression will
be found and imported.

(list (filter even? [1 2 3 4 5]))

The core functions are documented in 2 sections, one
for basic functions like (even?..) and (nth ...) and
one for all the sequence functions.

Update: This removes all the caching decorators, misnamed as
'lazy-seq' from the core. All sequence methods now just use
yield to return a generator, so they are Python-lazy

Further refinements of core functions

Cleaned up the docs to use 'iterator' instead of 'generator'

Fixed drop to just return the iterator instead of an extra
yield loop. But also added a test to catch dropping too
many.
make assoc accept multiple values, also added a even/odd check for checkargs
added @tuturto sugesstions and flake8 errors
added @paultag suggestions
Removes link to interactive demo from docs
Fix missing docstrings from defclass issue #248

Added ability to parse doc strings set in defclass declarations,
likei:

(defclass Foo [object]
  "this is the doc string"
  [[x 1]])
documentation for builtins
relates #18
defclass clarification
foreach - else clarification
removed setf
clarified foreach - else
Fix yielding to not suck (#151)

 This adds a class to avoid returning when we have a Yieldable
 expression contained in the body of the function. This breaks Python
 2.x, and ought to break Python 3.x, but doesn't.

 We need this fo' context managers, etc.

 This commit also has work from @rwtolbert adding new testcases and
 fixes for yielded entries behind a while / for.
Fixes a mistake (most probably a typo) in the tutorial.
fix to assoc docs + new multiassoc definition
initial macrodef documentation
better macro example
documentation for global
documentation for require
working on documenting macros
cond documentation
working on documenting builtins