CCDA generation

This branch adds the ability to pass BB.js its own JSON and get a CCDA out. It builds off work by @kachok at Amida Tech and uses EJS string templates to construct the XML.

It attempts to generate CCDAs that pass the NIST Testing Transit Tool's (http://transport-testing.nist.gov/ttt/) standards for all variants of CCDAs (clinical summaries, ambulatory transitions of care, inpatient transitions of care, etc.) under a wide range of input (missing keys, etc.), although there are certainly some values which, if left out or provided incorrectly, will yield an invalid CCDA. It also doesn't have the ability to populate some inpatient-specific fields yet. It is, however, capable of generating CCDAs that cover all of the data required for an MU 2014 ambulatory system (because I did the development work to support that effort for ElationEMR).

As part of that effort, I expanded a number of components of the parser as well (e.g., adding smoking status, cognitive/functional status, and more codes).

This was a pretty painful effort, so I hope some others benefit from getting to just generate JSON and get a CCDA out :)