reuse pre-allocated shared HTMLLinkContext instance.
HER-2001: Use the CodeMirror editor for crawl config and script console

This enables syntax-highlighting, line-numbering and auto-indent for the crawl
configuration editor and the script console (for BeanShell, JavaScript and
Groovy).

* BaseResource.java
    add a more generic getStaticRef() in addition to getStylesheetRef()
* EditRepresentation.java
    wrap textarea with CodeMirror in purexml mode.
    disable the "save changes" button until config is edited.
    dynamically resize CodeMirror edit element to fit window height.
* ScriptResource.java
    wrap textarea with CodeMirror.
    switch CodeMirror language modes depending on selected script engine.
* resources/.../restlet/codemirror/
    include just the files from codemirror-2.23.zip necessary for the above
    plus the CodeMirror LICENSE file (MIT)
    plus a README linking to the codemirror website
Merge branch 'master' of git@github.com:internetarchive/heritrix3.git
Merge branch 'master' of git@github.com:internetarchive/heritrix3.git
remove some dead or redundant code

* ArchiveUtils
    sb.length() was tested twice and int i was never used
* PrefixFinder
    opCount is never used
* BdbMultipleWorkQueues
    tries is never used
HER-2014 Make ArchiveRecord.getPosition() public instead of protected.
* ArchiveRecord.java, HeaderedArchiveRecord.java
    getPosition() - change visibility to public
* ArchiveRecord.java
    fix indentation only (no substantive changes)
HER-2015 credentials cached to server never used
* FetchHTTP.java
    populateCredentials() - return true when credentials populated from server cache
Revert "HER-2015 credentials cached to server never used"

This reverts commit 37a8504fda0e02c52738bcb8418e520eccaa1f38.
HER-2016 FetchHTTP tries every url twice without credentials before sending credentials
* FetchHTTP.java
    configureHttp() - enable preemptive authentication parameter
    innerProcess() - do not call method.setDoAuthentication() (it's for automatic 401 handling which is not what we want)
added a test case for catching HER-2013
test case for scheme-less relative URL
Merge branch 'master' into reuse-htmllinkcontext
Merge pull request #15 from kngenie/reuse-htmllinkcontext

Reuse htmllinkcontext
Real fix for HER-2016 FetchHTTP tries every url twice without credentials before sending credentials: Remember WWW-Authenticate headers, aka auth challenges, with CrawlURI, and after successful auth, with the CrawlServer. It's necessary to do this to know what Authorization header to send without getting another 401 first.
* CoreAttributeConstants.java
    new constant A_HTTP_AUTH_CHALLENGES key for CrawlURI.getData() for http auth challenges
* CrawlURI.java
    add A_HTTP_AUTH_CHALLENGES to keys to remember across URI processing; convenience getter and setter for auth challenges
* Credential.java, HtmlFormCredential.java, HttpAuthenticationCredential.java
    add httpAuthChallenges argument to populate()
* HttpAuthenticationCredential.java
    populate() - process httpAuthChallenges to set up auth state of http client to send the right auth header
* CrawlServer.java
    cache httpAuthChallenges
* FetchHTTP.java
    getAuthScheme() - cache auth challenges with CrawlURI
    configureHttp() - do not set authentication preemptive - this is handled by the configuration done in HttpAuthenticationCredential.populate()
    promoteCredentials() - cache auth challenges with the CrawlServer
* Credential.java, HtmlFormCredential.java, HttpAuthenticationCredential.java
    bump serialVersionUID because of changed method signature on populate()
Make speculative link extractor ignore urls with two consecutive slashes (not preceded by a colon as in http://). We've seen the double slashes lead to crawler traps.
* UriUtils.java
    isLikelyFalsePositive() - consider likely false positive if it contains '//' (but not '://')
* UriUtilsTest.java
    testDoubleSlashFalsePositives()
Fix for HER-2019 fetchHTTP httpBindAddress setting doesn't take effect
* FetchHTTP.java
    use keyed properties for httpBindAddress setting, as expected in configureBindAddress(CrawlURI, HostConfiguration)
Fix for HER-2017 XML representation for /engine/job/<jobName>/beans uses root node of type "script" instead of "beans"
* BeanBrowseResource.java
	replaced "script" string in root node with "beans"
Merge pull request #16 from adam-miller/HER-2017

Fix for HER-2017 XML representation of beans uses root node of type "script"