Proof-of-concept for having a configurable parser option

__Just looking for feedback__ on whether you think this is a worthwhile approach to my problem. I will add tests and perhaps strengthen the implementation if you think this is something we could merge in. Here's a summary of my issue:

__Problem:__
* We need to validate the HTML string as if it were an entire document, not just a fragment
* The fragement parser strips html, head, body, etc. tags even if they are included in the whitelist

__Changes in this pull request:__
* Preserve existing behavior by default, and introduce an option to specify the scope (naming?) of the parser you want to use (fragment vs full-document)

Let me know if there's anything I can do to help.