Modified Node.clone() to use iterative approach.

Uses BFS to clone nodes. Fixes #290.
Made test method for attribute protected so it can be overridden
Merge branch 'master' into issue_290
Added test for cloning deeply nested document.

Based on @khaing211's suggestion and test code. The test is ignored by default since it can take awhile to run.
Add "cite" protocols to relaxed

This option is present in basic but missing from relaxed.
Fixed support for self-closing script tags.

Fixes #305
Fixed a crash when reading an unterminated CDATA section.

Fixes #349
Fixed an issue where elements added via the adoption agency algorithm did not preserve their attributes.

Fixes #313
Added test for #332, already passes without pull
Tweaked Elements.clone()

So that extenders' clones will be the correct type.
FindBugs squash

Document that extenders equals method is just ==
Merge pull request #351 from marconilanna/patch-1

Add "cite" protocols to relaxed
Merge branch 'pr/292'
Changelog for #290
Performance: hit stack.size() less in agency adoption

On HTML test cases that use adoption, this was causing ~ 23% of CPU
time. Knocks it down to ~ 7%. (Which I found unintuitive, because it's
a simple int getter, and I expected that to get inlined by the JIT.
Performance: moved body tag searches to constants

Reduces the GC load of the body process step by 10% from 43% to 33% of
GC caused during parsing.
Performance: reduced String[] allocations in Builder

Reduces GC load of tag searchers from 15% of objects to 2%. A little
harder to read but worth it.
Performance: CPU and memory improvements for Selectors

Reduced CPU load and GC load for common selector use
Changelog for perf improvements
Replaced whitespaces by "%20" in urls on redirects and .connect(String
url)