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.
Function: Fixes str-slice behavior (#565).
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 "Merge pull request #568 from xzyfer/feat/each-maps"

This reverts commit 3f428c0236d5ca3b33ba7db03cf475824a949327, reversing
changes made to 4f02ecca0c49526bf25c1429f2166d079fda0b09.
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"
Merge remote-tracking branch 'upstream/master'