Add a keyword? function to detect keywords.

Thanks to algernon for the function body; huge improvement.
add make flow to the hacking docs
Cleanup requirements, .travis.yml and tox.ini.
Changed conf.py to use RTD theme if available
Raise exceptions when no handlers are provided.

Also small DRYing in try handling.

Previously, writing a bare (try (foo)) would invoke Pokemon
exception catching (gotta catch 'em all) instead of the correct
behavior, which is to raise the exception if no handler is provided.

Note that this is a cute feature of Hy, as a `try` with no `except`
is a syntax error.  We avoid the syntax error here because we don't
use Python's compiler, which is the only thing that can throw
Syntax Errors.  :D

Fixes #555.
merge #547 - keyword?
Reimplement some built-ins in terms of the standard library.

As a result:

  * functions such as `nth` should work correctly on iterators;
  * `nth` will raise `IndexError` (in a fashion consistent with `get`)
    when the index is out of bounds;
  * `take`, etc. will raise `ValueError` instead of returning
    an ambiguous value if the index is negative;
  * `map`, `zip`, `range`, `input`, `filter` work the same way (Py3k one)
    on both Python 2 and 3 (see #523 and #331).
Move the documentation for `zipwith` to the correct place.
Make hy2py public.
Enable Python 3.4 on Travis CI.
Merge branch 'master' into pr/524