Removed reliance on DOM and created own parser

This new parser was needed due to the heavy overhead created by DOM.
>1hr to handle instances of ~2400 nodes.
New version takes ~14 seconds to handle that many.