Updated the config parser

Updated the config parser to provide better readability and flexibility
in config files. The latest features introduced a really messy way to
handle config files and this update alleviates this by adding the
ability to create profiles and associate them to pools.

Todo: Update the config file writer, in-program options and continue to
break off the config parsing/command line option code out of sgminer.c
to reduce clutter.
Fixed whitespaces

Cleaned up whitespaces in code
Updated config writer

Config writer now supports profiles and pool specific values. In
addition, the config writer now makes use of the jansson library to
create proper json objects and save them to the config file. This is
much better than trying to write our own json code.

Conflicts (resolved):
	sgminer.c
More options added

Added the following options to profiles/pools:
device (set devices on/off per profile), lookup-gap, shaders, worksize,
gpu-powertune, gpu-vddc
Update configuration.md (19 squashed commits).
Updated API functionality

Fixed addpool to specify a profile or algorithm and sets defaults if
nothing specified. Also added a new API function to change multipool
strategy.

Conflicts (resolved):
	sgminer.c
API Update

Ability to add/remove profiles via API.
Fixed a segfault issue writing config file
Added API function to change pool profile

Added the API function changepoolprofile to change a pool's profile to
the specified profile name.
Updated example.conf
Update configuration.md
Update API.md (3 squashed commits).
Update configuration.md
config: remove unused variable.
misc: update AUTHORS and NEWS with changes from branch config-parser (and a few others).
config: conflict with v5_0 (develop) branch, opt_algorithm was changed from a pointer.
Merge branch 'config-parser' into v5_0