Added a basic validator for CSPPlugin. See #42.

A parser and a validotr were supposed to be written to solve #42. But
the parser I was building using pyparsing doesn't work very well and I
also have a difficult time actually validating through that parser.
Instead of wasting more time building a parser, I have decided to
implement a basic validator plus a url regex within the source code.
This one works for the general purpose.

I will continue my work started in
https://github.com/yeukhon/csp-validator.
Closing #33. Header name is only checked in lower-case.
Added two tests on create user and get all users.
Added functional tests for /groups api endpoints. See #2.
Merge pull request #46 from yeukhon/csp-ftests

Added a basic validator for CSPPlugin. See #42.
Merge pull request #47 from yeukhon/issue33

Closing #33. Header name is only checked in lower-case.
Merge pull request #48 from yeukhon/issue2

Adding functioanl tests to the backend api (see #2)
Added a Travis status image
Added tests to /sites* end points. See #2.

When writing the tests a few bugs have been discovered. See ticket #49,
ticket #50, #51 and #52.
Converted existing /plans* and /plugins tests to use _call. See #2.
Merge pull request #53 from yeukhon/b192ddea0d8a71e70e9786fe85e8535963efac6a

Pull request for /sites api tests
Added functional tests for /scan* endpoints. See #2.

A minor modification has been made to ``put_scan_control``. See
ticket #54. What remains to be done is actually testing running plugins.
Right now plugins don't start according to output. See #55.
Added /reports* api calls to the tests, but #56 prevents writing tests.

Ticket #56 is blocking me from writing actual tests. It seems like we
have to add users record to either sites or groups. But Stefan will help
me handle this as well tomorrow.
Fixed #50, #51, #52, #56. Added sites to groups collections.

Problem:

Most of these issues is caused by sites are not being added groups when
a site is being created. Some part of the documentation was not clear
either. I also overlooked at some of the issues.

Solution:

This commit appends the site url to each group
specified by ``groups``. Furthermore, the ``_call(..)`` function in the
function test has been modified to remove 'application/json' from GET
request to prevent Flask from complaining.

Problems remain to be solved:

1. When a group is created, owner should be included automatically. This
is trivial fix; require user to be added as part of the request, and
add user to the default list instead of an ``[]`` list.

2. Review documentations.

3. We still want a few more individual functional tests for
/report/issues.

4. We still have to fix #55.
Merge pull request #57 from yeukhon/issue2

Added functional tests for almost all apis except /reports* due to bugs #52 - #56
Merge pull request #58 from yeukhon/issue52

Fixed #50, #51, #52, #56. Added sites to groups collections.
Added celerybeat-schedule to gitignore list.
Fixes #51 - Creating a new site does not add site to groups
Merge branch 'master' of https://github.com/st3fan/minion-backend

Conflicts:
	minion/backend/api.py
Reverted put_scan_control to accept the state as text