MGFX Fixes

This first fixes an issue with using `float.Parse()` (and potentially `int.Parse()`) on a system where the culture was something other than en-us.  These numbers should always be parsed in a culture invariant way on all platforms. Thanks to [Backlash](http://www.codeplex.com/site/users/view/Backlash) for pointing this out to me!

As part of fixing this I found that we were incorrectly parsing the Number type for sampler or render states in MGFX.  It was requiring a leading `+` or `-` instead of making it optional.  Not sure how this slipped thru for so long other than very few people are using sampler or render states that take a numeric value.