Work on branch select

This pull requests provides some changes for the support for branch selection and pagination in the commit overview (the project page).

First of all, a List of commits is not required to be sent with the `DetailedRepositoryModel` anymore. Devhub picks a branch it prefers, and then retrieves
the `DetailedBranchModel`. The `DetailedBranchModel` contains a list of commits. This list of commits can be filtered (skip and limit values). The values along
with the actual amount of commits are stored in the `Pagination` object in the `DetailedBranchModel`, to provide Devhub with all information needed for proper
pagination.

The `RepositoriesMock` had to be changed a lot as well due to these changes. This is because it was misusing the recent commits within `DetailedRepositoryModel`
to store the actual commits in. For the `RepositoriesMock`, `DetailedRepositoryModel` is now replaced for a more advanced `MockedRepositoryModel`, which contains
a list of `CommitModel`s  and some sugar methods to actually store tags, branches and commits in the mock. To bind these commits to a branch, I armoured the 
`RepositoriesMock` with a small commit walker.

![devhub-1](https://cloud.githubusercontent.com/assets/3469492/3633453/b0843b9e-0ee3-11e4-9fb7-7871d3813a1c.png)
![devhub-2](https://cloud.githubusercontent.com/assets/3469492/3633454/b08581d4-0ee3-11e4-991c-dc8b45320897.png)
![devhub-3](https://cloud.githubusercontent.com/assets/3469492/3633455/b086587a-0ee3-11e4-9bcc-9c4db6aac534.png)


**Maven build result**
```
02:52:12.603 INFO  liquibase - ChangeSet changelog.xml::insert-dummy-data::Michael de Jong ran successfully in 1ms
02:52:12.608 INFO  liquibase - ChangeSet changelog.xml::add_timeouts_to_courses_and_groups::Michael de Jong ran successfully in 3ms
02:52:12.618 INFO  liquibase - Successfully released change log lock
02:52:12.618 DEBUG n.t.e.d.server.database.DatabaseStructure - Finished processing all liquibase changesets.
Jul 19, 2014 2:52:12 AM com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource getPoolManager
INFO: Initializing c3p0 pool... com.mchange.v2.c3p0.PoolBackedDataSource@918a3b7b [ connectionPoolDataSource -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@b0a3068c [ 

acquireIncrement -> 3, ac
quireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, 

connectionCustomizerClassName -> n
ull, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, debugUnreturnedConnectionStackTraces -> false, factoryClassLocation -> null, 

forceIgnoreUnresolvedTransactions -> fa
lse, identityToken -> 2rvy5j93l45wyj9yb3d2|7e31062c, idleConnectionTestPeriod -> 100, initialPoolSize -> 3, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime 

-> 100, maxIdleTimeExcess
Connections -> 0, maxPoolSize -> 100, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 1, nestedDataSource -> 

com.mchange.v2.c3p0.DriverManagerDataSource@83b5f7f [ description -> nu
ll, driverClass -> null, factoryClassLocation -> null, identityToken -> 2rvy5j93l45wyj9yb3d2|153cfd86, jdbcUrl -> jdbc:h2:devhub-test, properties -> {user=******, 

password=******, autocommit=true, rel
ease_mode=auto} ], preferredTestQuery -> null, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, 

usesTraditionalReflectiveProxi
es -> false; userOverrides: {} ], dataSourceName -> null, factoryClassLocation -> null, identityToken -> 2rvy5j93l45wyj9yb3d2|595fed99, numHelperThreads -> 3 ]
02:52:12.810 DEBUG n.t.ewi.devhub.server.backend.Bootstrapper - Persisted user: student1
02:52:12.811 DEBUG n.t.ewi.devhub.server.backend.Bootstrapper - Persisted user: student2
02:52:12.813 DEBUG n.t.ewi.devhub.server.backend.Bootstrapper - Persisted user: assistant1
02:52:12.814 DEBUG n.t.ewi.devhub.server.backend.Bootstrapper - Persisted user: admin1
02:52:12.818 DEBUG n.t.ewi.devhub.server.backend.Bootstrapper - Persisted course: ti1705
02:52:12.819 DEBUG n.t.ewi.devhub.server.backend.Bootstrapper -     Persisted assistant: assistant1
02:52:12.821 DEBUG n.t.ewi.devhub.server.backend.Bootstrapper -     Persisted group: ti1705 - Software quality and testing (Group #1)
02:52:12.822 DEBUG n.t.ewi.devhub.server.backend.Bootstrapper -         Persisted member: student1
02:52:12.822 DEBUG n.t.ewi.devhub.server.backend.Bootstrapper -         Persisted member: student2
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 20.977 sec

Results :

Tests run: 9, Failures: 0, Errors: 0, Skipped: 0

[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ devhub ---
[INFO] Building jar: c:\Users\Jan-Willem.GMELIGMEYLING\git\devhub\target\devhub-server.jar
[INFO]
[INFO] --- maven-assembly-plugin:2.4:single (zip-assembly) @ devhub ---
[INFO] Reading assembly descriptor: src/main/assembly/jar-with-dependencies.xml
[WARNING] The following patterns were never triggered in this artifact exclusion filter:
o  'nl.tudelft.ewi.devhub:devhub-server'

[INFO] Copying files to c:\Users\Jan-Willem.GMELIGMEYLING\git\devhub\target\devhub-server-distribution
[WARNING] Assembly file: c:\Users\Jan-Willem.GMELIGMEYLING\git\devhub\target\devhub-server-distribution is not a regular file (it may be a directory). It cannot be attached 

to the project build for in
stallation or deployment.
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ devhub ---
[INFO] Installing c:\Users\Jan-Willem.GMELIGMEYLING\git\devhub\target\devhub-server.jar to C:\Users\Jan-Willem.GMELIGMEYLING\.m2\repository\nl\devhub\devhub\1.0-SNAPSHOT

\devhub-1.0-SNAPSHOT.jar
[INFO] Installing c:\Users\Jan-Willem.GMELIGMEYLING\git\devhub\pom.xml to C:\Users\Jan-Willem.GMELIGMEYLING\.m2\repository\nl\devhub\devhub\1.0-SNAPSHOT\devhub-1.0-

SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:17 min
[INFO] Finished at: 2014-07-19T02:52:37+02:00
[INFO] Final Memory: 28M/182M
[INFO] ------------------------------------------------------------------------
```
I moved this test case because it requires no commits in the repository (and in the other test case the initial commit is created in the before class)