Add Vine Script

ignore the excess of commits, this PR is for the vine script.
Not a complete implementation however. :/