Added ability to specify disk buffer size in TCOutput plugin. Fixes #1110

@rafrombrc Hi, I'm creating this PR to easier work/progress on this issue. Could you do initial review? I'll create proper tests and documentation in next commit log, but i would really appreciate your initial thoughts or suggestions.
Thanks in advance. 
Most everything in this PR looks good to me, except this loop here. There are a few issues:

* In normal operation, the non-error case is vastly more common than QueueRecord returning an error. It seems weird then to set up and break from a for loop for every message. I'd rather see the first attempt to queue the message happen outside of the loop, even if it means a little bit of code duplication.

* In the blocking case, this will be a very tight loop that will spin away and chew up CPU time. At the very least there should be some sleeps in there, but it might even make sense to use a RetryHelper.

* In the exit case, exiting the plugin is not the same as exiting Heka. Heka *might* shut down, but an output can be configured to exit safely (which actually would probably be okay in this case) or to continually restart itself (which would not be the desired behavior). If we really want to shut down Heka, we need to call Globals.Shutdown().

* In the drop case, packs have to be recycled or they will never be released back to Heka for reuse.