Fixed floating point parse errors

The float parsing regex missed some valid floating point formats. For example: `1.` and `1e8` would fail to parse.

There issues were discovered when parsing https://raw.githubusercontent.com/BVLC/caffe/master/src/caffe/proto/caffe.proto

Included fixes to the parsing regex and unit tests to cover the error cases.