Refactor apply_translation into multiple functions.
Code reformatting
Eliminate nested case statement
Remove dead code, enum handling happens in cuttlefish_enum now
WIP fixing re-applying transformations
Add guards to some datatypes that fail on recursive calls
Found source of nested config bugs + extended types

* Tweaked cuttlefish_nested_schema_test to provoke the bug more clearly.
* When transform_extended_type encounters an error, it didn't continue
  processing the list. This means that anything that isn't a string and
  isn't of that type would fail and not try any other types. Now we cons
  the error into the accumulator and continue.
Refactor transform_type so it's not mutually tail-recursive

* Factored out the control flow of transform_type/2 into foldm_either.
  foldm_either/2,3 returns on the first successful transformation and
  otherwise accumulates errors. This means that
  transform_supported_type/2 and transform_extended_type/2 don't have to
  manually call transform_type/2 with the remaining list on failure,
  instead simply returning {ok, V} or {error, Reason}.
* transform_type/2: Since is_supported/1 and is_extended/1 are mutually
  exclusive, I converted the case with tuples into an 'if'. This looks
  cleaner to my eyes.
* transform_supported_type/2: Converted the case with an internal 'catch'
  into a try with pattern-matching. 'catch' has been known to perform
  less well than try/catch and the syntactic result more clearly calls
  out the exceptional case.
Replace string:join/tokens with cuttlefish_variable calls
Use testing_time for the builders
Bump up eunit timeout and use imported functions from eqc
Ensure compilation when EQC is not present
testing_time is not auto-imported
Merge pull request #171 from basho/bugfix/sdc/recursive-translation-errors

Address nested-translation errors + refactor

Reviewed-by: javajolt