Element pseudos

Currently pseudos are only global.  This PR allows for element pseudos.    It's usefully for when you have some function that you need to run over and over again for a bunch of accessors that is only useful within the scope of the element.