fixes to getKeysAndValues and hintDirectives

1. directive parsing didn't work correctly when there was no 'scope' key
2. there were other issues with the scope attribute regexp
3. directive parsing didn't work correctly when there was no 'restrict' key
4. there were other issues with the scope attribute regexp
5. hooked $compile expected param to be a jqlite element, but it might also be DOM element or string
6. directive factory function was attempted to be hooked with no apparent reason and it worked only if the factory was in array notation and without dependencies, so I removed it. If there was a good reason for this, I can bring it back and fix the hooking so it will work for all three invocation styles (array, annotated, $inject)
7. default directive registration was broken since it stored the directives camelized while the rest of the system expects them to be dasherized. I fixed it to be desharized, but I think that the correct solution is to store them camelized and also camelize the attributes before looking up in the dictionary since this is how it is done in angular... This would be a bit more code, I guess, but I can send a PR for it if wanted