Added some command line options to affect the behavior of cfndsl.

Added a mechanism to pass external variables into the cfndsl temmplate. This
is primarily motivated by the fact that Heat does not yet support Conditional
resources, but its usefulness is not limited to that. The other main case I
see for it is passing in sets of ami for dynamically building up region-ami
maps in situations where you find yourself periodically burning and deploying
new sets of amis on a regular basis.

I also moved the guts of the eval block into the CfnDsl module in case you need
to duplicate the evaluation process in a non-command line evironment.