split gfw list into maps,for `fast host lookup`

for candidate hosts list like:
[
  "www.google.com",
  "plus.google.com",
  "en.wikipedia.org",
  "www.facebook.com"
]

turn it into maps:
{
  "com":{
      "google":{
          "www":{},
          "plus":{}
       },
      "facebook":{
         "www":{} 
      }
   },
  "org":{
      "wikipedia":{
          "en"
       }
   }
},

and make proxy decisions base on this maps(search/match)

ported from http://goo.gl/2qwpsu