use rebar in path if already installed on target system

If the rebar provided in katt is compiled with an incompatible OTP
version, rebar will fail.
return empty proplist for empty binaries

When hitting the parse function, if the body binary is empty we want to
return an empty proplist as an empty json object should be considered
valid. Should the json object be malformed, we still crash.

Previously empty binaries made the parsing crash.
add a working rebar binary
add modules for katt_(response|request)
make sure unicode strings are converted back to uft8 as well as binaries

maybe_json_string inserts escaped quotes around a string. The function
erronously assumed incoming lists of integers are already in utf8, or
alternatively assumed it was only used for binaries. However, parsed
katt responses are unicode lists that may contain non-valid utf-8
characters. Typically this manifested as a crash in the call to
mochijson3:decode/1 as called from katt:make_katt_response. In the
recall step, katt substitutes values in the apib file for values in the
Params proplist which are unicode strings. In the recall function, these
params are passed to maybe_json_string which is assumed to convert them
back to utf8-encoded strings.

This patch makes sure lists are also converted back to utf-8 binaries.
add failing tests for undefined situations
fix failing tests for undefined situations