Export arguments of parameterized classes

Use puppet/parser for a first class analysis of the class definitions.
Using regexes would have been a nightmare.

Exports a "params" sub-object whose keys are the parameter names and
values are a best-effort convertion from AST leaves to native ruby
types, before being exported as native JSON values.

Compatible with Puppet 2.6 and 2.7, at least.

Tests:
- Manifest must now parse in order to extract classes from it,
  hence the fix in the test.
- Functional tests
minor cleanups to tests

* allow to each test run by itself.
* fix puppet environments test
minor cleanups to tests

* allow to each test run by itself.
* fix puppet environments test
fixes #1797 - Added a REST interface for the Facts known about the proxy
Merge branch '26' into develop
feature #1829 - add bmc ipmi support to smart proxy
Create the pid parent dir if it doesn't exist
fixes #1835 - proxy now can import classes from puppet 2.7.19
fixes #1836 - puppet cert in 2.7.19 has a different exit code
make sure that class parameters are prefixed correctly and not as strings
added comment for code clarity
fixes #1856 - adds a config.ru and allow the SP to run as a rack app.
Fixes #1914: Raise if we cannot read the puppet conf file, report the path otherwise
fixes #1929 - set umask sensibly to prevent world writable files (CVE-2012-5477)
Fixes #1761 - default to /etc/puppet if we can't find a value for
More detailed log message for puppetca ssldir Add ssldir and puppetdir to config examples Fixes #1104
Removed files related to packaging
Fixes #1941 - Load only the puppet binary when puppet 3 or higher is used
fixes #1915 - load environments from Puppet 3

Two changes to support loading environment settings from Puppet 3:

* explicitly specify the run_mode as being 'master' to ensure the config is
  parsed in a puppetmaster context
* call private method to fully clear the state in Puppet::Settings allowing for
  a full reparsing of the config to pick up changes in environments (Puppet bug
  #17783)
fixes #1967 - missing require for Puppet constant