move helper for creating incalls into test_dao
convert 'associate_to_user' into 'associate_destination'

Makes it easier to update type/typeval on an extension for
other stuff than just a user
split extension dao tests into smaller units
add getters to context dao

will be used when associating incalls to a line
create user incalls with the incall dao
add new validation rules based on context type

Our current database schema imposes a few restrictions
when we associate a line with an extension:

A user can only have one internal extension
for his line. The table user_line doesn't support
line <-> extension n/n relations. This should
be fixed once the table user_line is split into 2 tables
(user_line and line_extension)

When associating an incall, the line must already be associated
with a user. This is because incalls in the database cannot
be redirected towards a line. So, we artificially simulate the
association by redirecting the incall towards a user. This
is harder to fix because you would need to refactor a lot of stuff
in the database AND the webi before being able to directly
associate an incall with a line.
Associate an incoming call extension with a line

Allows the creation of incoming calls through RESTAPI.
For the moment, only incoming calls with a user destination
are supported.
fix test side-effect

Apparently, keeping a reference to sqlalchemy rows between tests is
a bad thing. When running all unit tests, user DAO tests fail for
no clear reason. I have no idea why, but removing references to
sqlalchemy rows fixes this.
forgot to pass a parameter to extension dao
dialaction must be linked to show up in webi
fix spelling mistake

THANK YOU PASCAL
use extension id instead of model for dissociating

makes it easier to reuse in other services
refactor tests, add helper for creating models
find incalls by using an extension id

will be used by line_extension validator and service
add method for deleting incalls in DAO
add missing validators on line_extension dissociation

3 things missing:

 - Check that line and extension exist when dissociating
 - Check that extension is already associated to line

Checking that the extension is already associated also
helps to make sure that we are either dissociating
an internal extension or an incall
use incall DAO when dissociating an extension
only validate device association on internal extensions

incalls can be dissociated even if a device is still provisionned
to a line
refactor tests, make more readable
do not return a UserLine when there is no user associated