Ignore duplicate scripts, styles and head inserted via helpers and handlers

Extended helpers and handlers for scripts, styles and head to ignore duplicate entries. Prevents a duplicate HTML tag from being inserted into the script, style or head contexts. Also works for inline.

Previously calling ```$this->html->script(array('foo', 'bar', 'foo'));``` would generate the following:

````
<script type="text/javascript" src="/js/foo.js"></script>
<script type="text/javascript" src="/js/bar.js"></script>
<script type="text/javascript" src="/js/foo.js"></script>
`````

With this, the same call will only insert the foo and bar scripts once each, resulting in:

````
<script type="text/javascript" src="/js/foo.js"></script>
<script type="text/javascript" src="/js/bar.js"></script>
`````

Also works with successive ```$this->html->script('foo', array('inline' => false));``` calls, resulting in only one ```foo.js``` script being generated.