lexer: allow variables to be any valid CSS identifier

Previously, variables were required to be a "name" token--alphanumeric,
`-`, or `_` only. Allow variable names to be any valid identifier for
consistency with mixin/function names and Ruby Sass.

Satisfies tests introduced by sass/sass-spec#94.

Fixes #553.
Improve map performance by using hash tables
Don't re-evaluation unnecessarily
Merge pull request #563 from xzyfer/wip/fast-maps

Give maps a speed boost
Fixes memory leaks with C functions and Sass_Values

Sass_Values that are created programmatic may allocate
memory on the heap. Since we may return this Sass_Value
back to libsass, the implementer cannot take care of
freeing this memory. Therefore libsass should free
Sass_Values that get returned by c_functions.
Changes usage of new to malloc for better C compatibility
Updates sass2scss to latest version
Added generic support for destructuring assignment in @each
Merge pull request #567 from am11/master

Function: Fixes str-slice behavior (#565)
Merge pull request #564 from mgreter/fix/c-sass-value-mem-leak

Fixes memory leaks with C functions and Sass_Values
Merge pull request #561 from benesch/variable-identifiers

lexer: allow variables to be any valid CSS identifier
Merge pull request #568 from xzyfer/feat/each-maps

Add generic support for destructuring assignment in @each
Revert "Add generic support for destructuring assignment in @each"
Merge pull request #570 from sass/revert-568-feat/each-maps

Revert "Add generic support for destructuring assignment in @each"
Code: Analysis warning fixes. (#519)