Better Yaml support and other enhancements

## Better YAML support
- Added PyYAML to handle parsing yaml frontmatter
- Added the following built in yaml keys
    - **basepath**: An absolute path to configure the relative paths for images etc. (for when the markdown is supposed to reference images in a different location.)
    - **references**: Can take a file path or an array of file paths for separate markdown files containing references, footnotes, etc.  Can be an absolute path or relative path.  Relative paths first use the source files directory, and if they the file is not found, it will use the `basepath` setting.
   - **destination**: This is an absolute file path or relative file path for when the markdown is saved to html via the build command or the `Save to HTML` command.  Relative paths first use the source files directory, and if they the file is not found, it will use the `basepath` setting.
    - **settings**: This is a dictionary where you can override settings that are in the settings file.
    - **title**: set the title in the html header.
- All other entries in the yaml frontmatter will be placed in `meta` tags in the header `<meta name="key" content="value1,value2">`.  These entries should be single values or single dimension arrays.

## Other Stuff
- Add a file for visual ensuring rendering looks goods (better than nothing until a test suite is developed)
- Simplify CSS rules (strip out unnecessary references etc.)
- Pre blocks are scrollable when they overflow (like github etc.)
- Tables now scroll when they overflow