Add file_polling_input and decoders/filters for system stats

This PR includes a new file_polling_input input which periodically takes
the contents of a file and puts them into the payload of a heka message.

It also includes decoders and matching filters for parsing system memory stats
from `/proc/meminfo`, cpu stats (load avg, and processes) from `/proc/loadavg`,
and disk stats from `/sys/block/$DISK/stat`.
This structure seems like a pre-mature optimization.  Yes arrays in theory should be more efficient but require more management in the code making it more opaque. and harder to follow.
For example:
* stats[1] -- v.s., a disk_stats variable (especially since stats is only iterated once)
* for i = 1, #time_stats.fields do -- iterating the size of stats.fields to index into the msg_fields (as opposed to just iterating msg_fields directly)

The above issues could be fixed without changing the structure but something like the following would be easier to follow and less prone to mistakes.
```lua
-- technically you don't need to specify nil values, but:
	-- it forces the table to be allocated to the proper size when the plugin is initialized
	-- it documents the structure in a single place
disk_stats = {
	cbuf		= nil,
    title		= "DiskStats",
	aggregation = "none", 
	unit 		= "",
	fields 		= {
		{name = "WritesCompleted"	, key = "Fields[WritesCompleted]"	, last_value = nil},
		{name = "ReadsCompleted"	, key = "Fields[ReadsCompleted]"	, last_value = nil},
		...
		}
}

for i, v ipairs(disk_stats.fields) do
	local val = read_message(v.key)
	if type(val) ~= "number" then return -1 end
	if v.last_value ~= nil then
		local delta = val - v.last_value
		disk_stats.cbuf:set(ts, i, delta)
	end
	v.last_value = val
end

```