scripting console:
fix bug: exception from script execution is not displayed.
remove extra space around exception and rawOutput.
involves a bit more than bug fix. introduced ScriptExecution class for
encapsulating script, execution, and result.
script conole: say "line" when linesExecuted==1.
generate global variables guide from model.availableGlobalVariables.
removed commented-out old code.
Added a data map to Link. Becomes the CrawlURI's data map when Link is
promoted to CrawlURI
avoid need for getRawData() method by introducing Link.hasData()
use intended File.separator instead of File.pathSeparator
followup on HER-2031 ExtractorHTMLForms.java - improve regexes looking for form and input attributes, mainly to avoid maxing cpu for long periods of time for certain input
HTMLForm.java - default html <input> type is text, so consider <input> with no type as candidateUsernameInput
ExtractorHTMLForms.java - handle a corner case extracting attribute values
avoid npe by setting default <input> type "text" when unspecified
fix bug where scripting console no longer retains your script when you hit execute
BeanLookupBindings: check appCtx != null explicitly, rather than using
assert.
FIX: 73f58dc56a broke XML variant of scripting console response, and will
  produce incompatible structure (extra nesting with scriptExec element).
  moved ScriptExecution code to ScriptModel, which is now a bean, not Map.
  XmlMarshaller is extended to support simple JavaBeans to XML marshalling,
  borrowing annotation classes from javax.xml.
ADD unit test for XmlMarshaller
HER-2040 ExtractorJS shouldExtract when content-type is application/json
new contrib subproject for extra generally useful modules not part of the main distribution
import Adam's ExtractorYoutubeFormatStream from its former home https://github.com/adam-miller/ExtractorYoutubeFormatStream
extractIndependently=true so that earlier ExtractorHTML extraction doesn't stop us from extracting here; also use java.net.URLDecoder
ExtractorYoutubeFormatStream.java
	Parse parameters instead of attempting to regex desired values
	Add priority itag list and extract limit

ExtractorYoutubeFormatStreamTest.java
	Test cases for extracting all videos and extracting single video
make ExtractorYoutubeFormatStream extend Extractor instead of ContentExtractor because we don't really want the extra stuff that ContentExtractor does