Add addgroup, addclass, listgroups, listclasses tasks for nodes

Previously if a user wanted to use rake tasks to interrogate the dashboard
about which groups or classes a node belonged to, they would be out of luck.
Similarly, if a user wanted to add a class or group to a node without replacing
the already assigned classes/groups of a node it was not possible via only
rake. This commit adds a task in the node namespace to add a group or groups to
a node and to add a class or classes to a node. The other two tasks added here
list out the groups or classes already assigned to a node.
Fix descriptions of node tasks to match reality

The descriptions for the node:classes and node:groups tasks are misleading in
that they indicate that the classes and groups of a node can be edited or added
to using the task. The actual tasks will replace, and only replace, the classes
and groups for a node so this commit updates those descriptions to indicate
that.
Fix for CVE-2013-0155
Add get_node helper method to node.rake

As there was a large quantity of repeated code in the node rake tasks, this
commit adds a helper method to get a node from the name environment variable
and to exit with error if the node doesn't exist or can't be found.
Merge pull request #164 from MosesMendoza/security/1.2rc/patch_rails_cve_2013_0155

Fix for CVE-2013-0155
Update CHANGELOG for 1.2.19
Merge branch '1.2rc'

* 1.2rc:
  Update CHANGELOG for 1.2.19
  Fix for CVE-2013-0155
Merge pull request #163 from haus/add_helper_tasks_to_node

Add helper tasks to node namespace
Remove CHANGELOG file, update version link

This commit removes the CHANGELOG from the top level of Dashboard, which only
contains commit hashes/titles from the previous releases, and is of debateable
utility given the commits aren't particularly useful without git in which case
one could just do `git log`. Currently, the CHANGELOG file in the github repo
forms the target of the version link in the dashboard.  As such, this commit
also updates the dashboard version link to point at the github commit log up to
the version tag specified in VERSION. This allows us to bring the files that
have to be edited and commited to source prior to a Puppet Dashboard release
down to one.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Merge pull request #165 from MosesMendoza/maint/1.2rc/remove_changelog_file

Remove CHANGELOG file, update version link
Update VERSION for 1.2.20 release

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Merge branch '1.2rc'

* 1.2rc:
  Update VERSION for 1.2.20 release
  Remove CHANGELOG file, update version link
Node and Group parameters rake tasks should not create duplicate entries. Fixes #13867, updates commit 0108c040 to behave as intended.
(#17914) Store FlashHash as a normal Hash in session

This patch is a backport of:

https://github.com/rails/rails/commit/36376560fdd02f955ae3bf6b7792b784443660ad

In the form of a monkey patch in the puppet-dashboard initializer stage.

This is required to allow puppet-dashboard to co-exist with other applications
that do not have the full rails stack in their namespace. Without it, other
non-rails applications (such as the certificate service and live management)
are unable to unmarshal cookies created in Rails. Instead, they invalidate the
session and we start to see weird authentication glitches in the GUI.

In essence this patch ensures that when the FlashHash data is stored in a cookie
it is stored as a normal Ruby Hash, as apposed to an
ActionController::Flash::FlashHash. As all other Ruby applications should be
able to unmarshal a Hash, this will avoid the Marshal.load method in
Rack::Session::Cookie from throwing a NameError exception.

Signed-off-by: Ken Barber <ken@bob.sh>
Merge pull request #168 from kbarber/ticket/master/17914_serialize_flash_as_hash

(#17914) Store FlashHash as a normal Hash in session
Merge pull request #166 from sodabrew/patch-9

Node and Group parameters rake tasks should not create duplicate entries
Check that the reports import dir exists, is a directory, is readable. #18512
puts is STDOUT.puts
Change deprecated 'ftools' to 'fileutils'.
Daemonize in the Debian / Ubuntu server init.