Initial code move to vic_run and driver directories
Merge branch 'dev_5.0' into feature/reorg
Merge branch 'hotfix/4.1.2.l' into feature/reorg

Conflicts:
	ChangeLog
	Makefile
	drivers/classic/src/initialize_model_state.c
	vic_run/include/LAKE.h
	vic_run/include/global.h
	vic_run/include/vicNl.h
	vic_run/src/full_energy.c
	vic_run/src/lakes.eb.c
Merge branch 'dev_5.0' into feature/reorg
Removed global.h and defined global variables in vicNl.c

global.h defined a number of global variables and was only included in
vicNl.c. There is not much of an advantage to this and is likely to lead
to confusion, since all the variables are already declared as externs in
the individual files where they are used or vicNl_def.h.
Renamed vicNl_def.h to vic_def.h
Moved global parameters NR and NF to vicNl.c
Cleaned up vic_driver_classic.h
Changed header files that are included

Reorganized the header files to support a clean split between the driver and the physical core of VIC.
In doing this I also separated the header files, so that they do not include other header files.
Renamed vicNl.c to vic_classic.c
Merged vic_run_lake.h with vic_run.h and vic_def.h

We'll keep only one header file for all the functions declarations that are part
VIC's physical core (vic_run).
Merged snow.h with vic_def.h. Removed relic header files.

I combined all the constants into a single vic_def.h file. Mainly to
avoid the problem that the same constants are defined differently in
different parts of the code. As is, there is a risk of "out of sight,
out of mind". Still need to split vic_def.h into a vic_run_def.h and
a vic_driver_def.h
Added #ifndef #endif wrappers to header files
Moved lake initialization functions to driver
Added stdio.h to vic header files that use FILE
Added common system header files to vic_def.h
Moved calc_rainonly from driver to vic_run
Moved initialize_lake from driver to vic_run
Moved correct_precip and calc_veg_height to vic_run
Moved write_layer.c to vic_run

Note that write_layer should NOT be part of vic_run. Instead, if
data is to be written out it should be passed to the driver.