Python 2/3 compatibility first steps for build.py

Also added module documentation and sorted imports.
Add docstrings for all of the functions in build.py
Fixed prefix_files being used as both a function and a variable in build.py
Make encoding handling explicit in build.py
Switch convert.py to using unicode_literals
Add future import to config.py and module docstring
Remove unnecessary range backward-compatibility declaration from build.py
Switch create_test.py to using io.open instead of open, and made encoding handling explicit
Switch elf.py to using io.open
Switch to unicode strings in lots of places in environ.py and made constants uppercase per PEP-8.
Unicode literals in external.py
Double-slashes for Windows paths in external.py
Future import for header_test.py
Make encodings explicit and switch to io.open in index.py
Switch to io.open and make encoding handling explicit in jinja_context.py
Get rid of extra encoding argument in jinja_context because 'wb' is not compatible with encoding
Add future import and autopep8 on main_convert.py
Add future import and switch to io.open in macho.py
Future import on main_index.py
Add future import to main_skeleton.py