Typo.
Rewrite most of the code with heavy refactoring.

NOTE: This patch removes
  - The ability to create the public and private keys.
    These will be reintroduced in the next patch.

  - The building of the license options map.
    I believe this library shouldn't impose the format of
    the license text. Instead, it should be free form and
    returned as is when the license is verified.
Return the license text's lines if the file is valid.
Improve error messages.
Use single quotes.