performance optimizations + options values flexibility

support for simple string matching if there is no need for RegExps
performance optimizations - prepare all possible headers once on initialization instead of every middleware call
support for any methods/headers requested by client with simply providing boolean true in options
support for single string value in options.allowedOrigins
support for matching any origin by simply providing boolean true or "*" in options.allowedOrigins

BTW I'm sorry for quality of diff, but I added missing ";" on end of statements (it wasn't required, but is more compliant with many other packages available for node.js)