fix panic about float in storage port, and add a test that verifies it

So, this __fixes-1347715__ - at least the most problem thing to crop up.  We have tests in the code that were checking to make sure that if a float gets into the config via json deserialization, that we handle it correctly.  However, it wasn't doing precisely the same thing the production code does, so it wasn't actually getting the value into the right area of the environConfig, and wasn't actually calling storagePort().  The test I added does this, and I verified it fails with a panic with the old code for manualConfig... then fixed the code the do a type assertion first, handling float64 and int... reran the test and now the test passes.

My only concern is that I don't know what changed to cause this error to suddenly start occurring.  I'm going to look into it and see if I can find the change that revealed this error.
There are comments in the code that says that this comes from deserializing from JSON, and JSON numbers are always a float64 unless they get coerced into other values.... since this is just a map[string]interface{}, it'll never coerce, just use the default (float64).

There was actually already a test that supposedly was testing this, but obviously was not actually testing this code..... I left that test in there, but added this one to actually test a float getting in.