Avoid using list_to_atom for finding the module name.

According to Erlang efficiency guide, using list_to_atom in this manner
is a bad practice.
Make sure the json validator does not create new atoms.

All of the not_* atoms created in the validate method should be known already.
Use byte_size instead of size to help compiler optimizations.

This is based on the suggestions from:
http://www.erlang.org/doc/efficiency_guide/commoncaveats.html
Merge pull request #449 from pooya/perf

Perf