Implemented PathBasedExclusion

This allows the user to annotate their base root class to exclude
complex paths.

For example given the following graph
User
 -> Company
   -> Users
     -> Groups
      -> Permissions
 -> Groups
   -> Permissions

You can tell the serializer to ignore the following object paths

company.groups
company.users
groups.company
groups.permissions.groups

which will give you a nice neat graph like so

User
  -> Company
  -> Groups
   -> Permissions