improve readability of license matching code
move logic for picking a license closer to License

With the hope of simplifying future refactorings.
simplify utility code
make licenses more table-like ... do they need to be classes?
fix minor problems with detecting licenses by url
remove conditionals that were merely handling test polution

Creating a License::Base subclass in tests breaks distant code which
expects all the subclasses to have a template in lib/data/licenses.

Perhaps this is another sign that licenses should be instances not
subclasses.
fix promiscuous detection of MIT license

When the phrase 'The MIT License' appears in the first line of a file,
we detect the MIT license.  This bug was detecting the MIT license if
the phrase appeared anywhere within the file.
move helper to utility class
convert License subclasses to instances
rename instance variables
backfill tests
class hierarchy to support different constructors is overkill
a Matcher is just a Struct
hide attributes that don't need to be public
backfill test
organize tests
define licenses in license/definitions.rb
organize license definitions
move test closer to the code that satisifies it
organize tests