Add var_stack.def.hpp to allow interfaces to use Stan header-only

Copies var_stack.hpp to var_stack.def.hpp and adjusts header guard

Follows pattern in Vandevoorde and Josuttis:

1.  header-only file    .hpp
2.  definitions file    _def.hpp   (includes 1)
3.  instantiation file  .cpp       (includes 2)

To use header only, you include (2). To use standalone, you include (1), but
also compile (3) in its own translation unit and then link it.
Merge pull request #1095 from ariddell/feature/models-header-only

Add var_stack.def.hpp to allow interfaces to use Stan header-only
Added poisson_log_rng documentation
Merge branch 'develop' of https://github.com/stan-dev/stan into bugfix/feature-1053-overflow-poisson_rng

Merging Bob's commits
Merging documentation update into Bob's code review changes

Merge branch 'bugfix/feature-1053-overflow-poisson_rng' of https://github.com/stan-dev/stan into bugfix/feature-1053-overflow-poisson_rng