Added AbsoluteSourceFilter for changing relative src to Fully Qualified

This is useful if an image is root relative but should really be going through
a cdn, or if the content for the page assumes the host is known i.e. scraped
webpages and some RSS feeds.
Made AbsoluteSourceFilterTest exceptions include their filter class name.

This should help identify what contexts are required for the filter.
Test have also been updated to make sure exceptions are raised when
required contexts are missing and that the exception message includes
the name of the class where the required context is missing.
Initial attempt to validate context before running filters.

This way developers will see any potential missing context without
running the entire filter, which may not ever encounter a case where
it needs the context.
Cleaned up context validation. Declared requirements for EmojiFilter.

Declaring required contexts has been simplified.
validates_context_presence no longer requires self to be passed in.
Instead it will attempt to build the caller name by using
Kernel::caller.

Tests have been added for filters that require context.
Added required context info.

Noted in filters if a context is required. Updated README to include info about
required contexts.
Made constant look like code.
Removed accidentally committed require statement.
Updated context validation to use a singleton.

Using a singleton to remove the reliance on a class variable.

Removed unnecessary calling_class method and just using self instead.
Added comment to explain ValidateContext.
Initial attempt to validate context before running filters.

This way developers will see any potential missing context without
running the entire filter, which may not ever encounter a case where
it needs the context.
Cleaned up context validation. Declared requirements for EmojiFilter.

Declaring required contexts has been simplified.
validates_context_presence no longer requires self to be passed in.
Instead it will attempt to build the caller name by using
Kernel::caller.

Tests have been added for filters that require context.
Added required context info.

Noted in filters if a context is required. Updated README to include info about
required contexts.
Made constant look like code.
Removed accidentally committed require statement.
Updated context validation to use a singleton.

Using a singleton to remove the reliance on a class variable.

Removed unnecessary calling_class method and just using self instead.
Added comment to explain ValidateContext.
Merge branch 'context_validation' of https://github.com/benubois/html-pipeline into context_validation
Switched validation approach.

Removed declarative code in favor of a validation hook. It's up to subclasses
to implement the validate method. Validate will be called by Filter after
initialization so @context is available.

Reverted README.md to remove the additions about validation.
Clarified comment. Removed accidental newline.
Context validation tweaks.

Changed required context method name to 'needs.' Updated needs to use
@jbarnette's concise version of needs.

Made validate a noop method instead of checking if a filter respond_to?
validate.