First pass of getting rid of ComplexSelectorDeque and friends completely in favor of Node. The code runs, but 20ish tests fail. When debugging, I realized we weren't grouping the selectors the same way ruby sass was in extendCompoundSelector, so I implemented group_by_to_a to mimic the same behavior.
Fix for trim to properly skip comparing against the same sequence. Use toTrimIndex == resultIndex && seqs1 == seqs2 instead of toTrimIndex == resultIndex. toTrimIndex == resultIndex was introduced to fix a bug where ruby is doing object comparison instead of equivalency comparisions. What I didn't realize was that result gets written to during the iteration, and we do want to compare if the object has changed. So, try checking both. I'm not 100 percent sure this is the right fix, but it makes a lot of tests pass. Committing for now, and I'll noodle on it tomorrow.
Add a comment to the trim fix to explain the tricky logic.
Implement complexSelectorHasExtension for debug mode to check if a selector has an extension before running through the extend logic. This is mainly to get our printing to match up with ruby sass, which is why it is debug only. ruby sass only runs extend on selectors with extensions. However, libsass runs it on all selectors. The result of the extend code is the same selector if the selector doesn't have an extension, so this doesn't need to happen in release mode.
Fixed some more tests that were failing due to improper selector equality testing. We were getting duplicates because certain checks in ruby did not care about Simple_Selector ordering, but our call to Node::contains did. Implemented a selectors_equal method that takes a boolean that determines order dependence. Implemented the same things for our Node object and started calling it.
Merging in feature/extend-support to pick up the debugging printing changes. I changed the default print level in debug mode to be NONE instead of ALL. I also removed some commented out code. There should be no functional changes in this commit.

Merge remote-tracking branch 'origin/feature/extend-support' into feature/extend-support-node-only

Conflicts:
	extend.cpp
	sass_util.hpp
Merge branch 'feature/extend-support' into integration/ddc
Remove the extensions object on the context since we now use the subset map exclusively.
Remove unused trim.cpp and trim.hpp since trim is now implemented in extend.cpp.
Fix unsigned int comparrison warning.
Implement subweaveNaive as an alternative for subweave for use in testing if subweave is not performant. This is inconclusive since using subweaveNaive seems to produce so many selectors in very complex cases. Optimized complexSelectorHasExtension since I realized it was doing work it didn't need to do.
Enable checking if there is something to extend before calling into extendComplexSelector. This was done in debug mode before to make our debugging prints closer to ruby sass. It turns out it's a substantial performance improvement, so this commit enables it for release mode as well.
Removed cloning from sass_util functions.
Removed more cloning that doesn't cause test failures.
Remove more cloning based on sass-spec testing.
First pass at rewriting lcs to use ComplexSelectorDeque instead of Node. LCS was showing up in Instruments as taking a long time. It turned out that it was due to parentSuperselector, which had to call nodeToComplexSelector a lot. This allocated new objects each time, which was slow. If we use Complex_Selectors instead, we can avoid the memory allocations.
Finished testing and implementation of the unification scenarios in mergeFinalOps.
Removing unused unify code now that we're consistently using the unify_with methods in ast.cpp.
Remove the deep compare from trim since we can do a pointer comparision now that we don't clone in this method.
Clean up pass. Removing unused code. Renaming things more sensibly. Moving things to where they should be.