In order to fix #608, we need to know which symbols can't be assigned.

Python has the keyword.iskeyword method we can leverage for Python
keywords, but we also need to address Hy builtins like 'get' or
'slice'.

And to make behavior compatible with Python 2 or 3, we also make
a special case to prevent assignment to False, True or None as
well as the Hy versions: false, true, null, and nil.

Note that if we make everything (like operators) in hy/compiler.py
a built-in, we break things like shadow.hy (which we want to keep)
So, the 'builds' decorator is modified to allow opting in specific
words we want to prevent from re-assigment.

This is a first pass at that list as well, but it is easy enough
to remove or add from the list.