Replace cuttlefish_unit:variable_starts_with/2 with lists:prefix/2.
Simplify cuttlefish_util:replace_proplist_value/3 by using lists:keystore/4.
Cleanup whitespace in cuttlefish_generator.
Extract cuttlefish_mapping:is_fuzzy_variable/1.
Simplify IsStrictMatch.
Told the epic tale of the innermost fold of add_defaults/2
Break up cuttlefish_generator:add_defaults/2.

* Added cuttlefish_mapping:has_default/1.
* Iterate over the mappings list only once in add_defaults/2. This
  means we check whether the mapping has a default value, and call
  add_default/4 if it does.
* In add_default/4, we check the strict/fuzzy match as before and call
  into add_fuzzy_default/4 if it's fuzzy.
* In add_fuzzy_default/4, we simply search the list for the first
  matching prefix and add defaults for all the associated
  substitutions that are not already present.
Rename variable in add_fuzzy_default/4.
Rename some variables in the list comprehension in add_fuzzy_default/4.
Refactor cuttlefish_util:matches_for_variable_def().
Cleanup whitespace in cuttlefish_util.
Refactor cuttlefish_generator:get_possible_values_for_fuzzy_matches/2.

In the case where `include_default` is used in the schema, and the
user has no entries that match that mapping, the default will be
generated. This presents a problem where, for example, in Riak one
might not be able to disable the HTTP listener because the schema
includes a default one. This commit changes the behavior such that the
`include_default` only affects .conf file generation, not
runtime/start-time app.config generation.
Simplify get_possible_values_for_fuzzy_matches/2 again.

Instead of iterating over the mappings multiple times and injecting
fake config into matches_for_variable_def/2, we simply pass the Conf.
Merge pull request #81 from basho/refactor/sdc-wrangler

Dat Big Refactor