create cache directory + update README
fix multi entry for directory cache creation + igalic advice
Merge pull request #15 from echoes-tech/master

Create cache directory
add a design document discussing types&providers

this addresses #14
deeper explanation on background & scope
add interface for trafficserver plugin

* it's ensurable
* has a name (path) of the plugin
* optional arguments (array)
* optional comments
we'll need a target (file)

we're modifying a file, yes, but which? we need a target here.
default (in the provider) will be /etc/trafficserver/plugin.config

That seems.. odd, btw.
first attempt at a provider based on parsed/postgresql_conf
add a trafficserver_record type

for scooping up and manipulating records.config

right now we're hitting the mysterious problem of not being able to
actually get any values, puppet resource trafficserver_record looks like
this:

    trafficserver_record { 'proxy.config.wccp.addr':
    }
    trafficserver_record { 'proxy.config.wccp.services':
    }
    trafficserver_record { 'proxy.local.cluster.type':
    }
    trafficserver_record {
    'proxy.local.http.parent_proxy.disable_connect_tunneling':
    }
    trafficserver_record { 'proxy.local.incoming_ip_to_bind':
    }
    trafficserver_record { 'proxy.local.log.collation_mode':
    }
    trafficserver_record { 'proxy.local.outgoing_ip_to_bind':
    }

that's kinda bad :(
s/newparams/newparam/g
use property instead param

parameters are not something that self.instances can discover or fill,
we definitely always want properties for everything that we can discover
from the system.

parameters are flags that influence the behaviour, or things that cannot
be reverse-engineered, like passwords (we set a password, it's converted
to hash in the system, but we can't get discover the password, hence
new param in that case)

name is different, in this regard, but probably only because it's a
namevar in this case.
assignment methods for name and value

plus initialize, where I still don't know what it does.

the value= method is used to actually call traffic_line and set / change
the value. traffic_line is only executed when the passed value does not
equal match up with the one recorded in the resource.
disregard previous comment about idempotency...

simplify (copy-paste) self.prefetch from @glarizza's
http://garylarizza.com/blog/2013/12/15/seriously-what-is-this-provider-doing/
because the one in puppet types & providers doesn't actually work:

it appears that it breaks down when comparing `is` & `should`.

*now* it actually works. the previous commit had a test in value=()
which was nonsense: value= has no access to the previous value.

if none of the above makes sense, that's because it only kinda makes
half-sense to me... btw, new best friend:

    require 'pry' ; binding.pry

big thanks to @apenny for this one.