Make sure Reason is a string

Since 8194983c4686945850b142e3cf330c8795a859b6 when an exception
in the app occured the console had:

Bad value on output port 'efile'

and the error log remained empty. This was due to the tupe not being
converted to string.
Merge pull request #176 from agx/fixes/error_logger

Make sure Reason is a string
Fixes a fatal edoc error. Changes the arity of the spec for init_routes to 1.
Update .travis.yml to use the most recent releases of Erlang OTP
Merge pull request #179 from NineFX/use-newer-otp-in-travis

Update .travis.yml to use the most recent releases of Erlang OTP
Merge pull request #177 from NineFX/fix-edoc-init-routes

Fixes a fatal edoc error. Changes edoc spec to init_routes/1
Use tools.mk in Makefile
Merge pull request #182 from basho/feature/tools.mk

Use tools.mk in Makefile
Add xref target
Merge pull request #185 from basho/feature/xref

Add xref target
Fix handling of unparsable range headers

Riak CS v1.4.2 returns a 416 status code for parseable but invalid Range
headers, but a 500 status when the header can't be parsed. This makes
the behavior consistent (always return the 416 status) by properly
handling the result of 'fail' from mochiweb_http:parse_range_request
Merge pull request #186 from nparry/range_fix_for_cs

Fix handling of unparsable range headers
replace use of now() with os:timestamp(), to remove some lock contention
Merge pull request #191 from openx/remove_now

replace use of now() with os:timestamp(), to remove some lock contention
no drinks
Merge pull request #198 from basho/no-drinks

no drinks
move to basho mochiweb 1.5.1p7
Merge pull request #201 from basho/mochiweb-1.5.1p7

move to basho mochiweb 1.5.1p7
fix version check in rebar.config.script for 17.0
Merge pull request #203 from basho/vinoski/vsn-17-check

fix version check in rebar.config.script for 17.0