Add exception awareness to GetFileContents, SetFileContents, AppendFileContents.
Return None and complain to log if exception occurs.
Update Changelog
Update RPM spec file
WALinuxAgent-2.0.3
Add FedoraDistro
Adding ResourceExtensions (Plugins).

Write configuration to file ExtensionsConfig.xml.
If <enabled> is true, attempt to download the plugin.
Get the manifest from 'location/failoverlocation' tag.
Download and extract the archive to LibDir/plugin_manifest_name/.
Read 'installCommand' from the PluginManifest.xml <Plugin> tag.
Create execuatable shell script containig 'installCommand'.
Spawn the script and report the PID to the Log.
TBD - disable plugin when <enabled> is false.

Added:
class ExtensionsConfig
Changed:
class HostingEnvironmentConfig
class GoalState
Write out the base64 config data to zip_dir so the resource extension plugin can process it.

Changed:
ExtensionsConfig.Parse()
Remove unneeded processing from HostingEnvironmentConfig.Process
Add updates for FreeBSDDistro

Add /usr/local/bin to path in bsd_init_file.
Use non-threaded method for activate resource disk to work around python thread bugs in FreeBSD10
Add call to dhclient if inet_addr is not set for hn0
Log to console even if verbose.
Updated version string and changelog
Minor doc cleanup
Minor README updates
Fix python version requirements in README

We really need Python 5+ for this version.
Updates for json plugin handlers.
Fix bug in json logic
Merge plugin branch
Experimental json extension handler replaces xml extension in ExtensionsConfig.
GetMacAddress() - if ifname is empty keep trying.
FreeBSDDistro - Handle potential custom data by increasing length of dd from 1 (2048 byte) block to 33.
Create the status and config dirs after manifest is read.
Move ExtensionsConfig.parse() to the health report loop in Agent.Run()
Support the full range of Handler commands.
Debugging ExtensionsConfig.