Built-in functions are now only matched by ident

Essentially reverts #8, but this is in scope of a bigger change.

Also clearly separate built-in functions and built-in types because some
used to be duplicated.
Properly match ident patterns inside function call

The previous attempt just didn't work because of two reasons:
1. The "dotted_name" was already consumed in function-call's "begin"
   match.
2. All "special" identifiers were essentially matched before the
   function call which meant that the actual call would never be
   matched since the function to be called (the identifier) was already
   consumed.

Simplify #dotted_name a bit in the process.
Re-add print and del statement matching

The print statement can now only be matched if it's not used in a
function previously since otherwise it would've been consumed.
Spaces are allowed in dotted idents
Forgot about decorators and item access
Fix indent of decorators being highlighted

Although it looked okay-ish with background color it was not intended.
dotted_name should not include linebreaks

Otherwise, color schemes defining a background color for
`entitiy.name.function` would make decorators span the remainder of the
line.
Match ALL_CAPS constants in dotted names

Previously, `self.CONSTANT` was not matched.
`print` must be an ident if followed by `,`

Or well, it's only valid syntax in Python 3.
Dotted names may span multiple lines

Even though we can't really match that correctly, at least match the
leading dot on a new line or after a function call. That's more correct.

Example:
ident = (value.dotted
         .__init__)
Add my personal testing file

It could be of use for regression testing later, or whatever. In any
case it should illustrate most of the changes of my pull request and can
easily be extended.
Merge pull request #22 from FichteFoll/better_function_match

Better function match