Make the policy language more lisp like

This patch adds:

(defun name (vars..) body)
(setq name value)

It also changes (defvar ..) to define the variable
only once. If the current scope already contains the
name, the value stays unchanged.

Another change was made to (let ..). It now accepts
multiple statements to evaluate in the form of:

(let (vars) expr1 expr2 ...)

Change-Id: I1268df51d730f8128e600b78cf9cc77ed983f7c6
Signed-off-by: Martin Sivak <msivak@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/21137
Reviewed-by: Adam Litke <agl@us.ibm.com>