Clean up the exception hierarchy.

Throwing Exception is not useful for the user, so I removed unnecessary `throw`
statements and IOException for the URL encoding. I also had to encapsulate the
JSON building in its own class to avoid having to do catch {....resetRequest()}.
Use the documented 'ms' time for milliseconds.

Documentation says 'ms' here: http://influxdb.com/docs/v0.7/api/reading_and_writing_data.html
'm' works but 'ms' is the correct one, so could avoid deprecation problems in the future.
Remove the timePrecision parameter to the constructor.
Since we are calling Clock.getTime() which returns the time in milliseconds, the server should always expect the time to be in milliseconds. This parameter is unnecessary and confusing for users